经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
单个视频播放控制&默认横屏播放
来源:cnblogs  作者:下落香樟树  时间:2019/11/14 8:47:36  对本文有异议

一、视频列表中控制只允许一个视频播放

  1. // 获取DOM中所有的video标签
  2. var videoTags = document.querySelectorAll('video');
  3. // 控制播放的视频暂停
  4. var pauseAll = function () {
  5. // 改变this指向
  6. var self = this;
  7. [].forEach.call(videoTags, function (i) {
  8. i !== self && i.pause();
  9. });
  10. }
  11. // 改变DOM数组中的数组元素,call() 改变this指向
  12. [].forEach.call(videoTags, function (i) {
  13. i.addEventListener('play', pauseAll.bind(i));
  14. });

注:call():调用一个对象的一个方法,用另一个对象替换当前对象,例如:arrayA.call(A,args1,args2),即A对象调用arrayA对象的方法。

二、视频列表播放时滑动页面抖动

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
  6. <meta content="black" name="apple-mobile-web-app-status-bar-style" />
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  8. <meta content="yes" name="apple-mobile-web-app-capable" />
  9. <meta content="telephone=no" name="format-detection" />
  10. <title>GST</title>
  11. <!-- CSS样式 -->
  12. <style>
  13. * {
  14. margin: 0;
  15. padding: 0;
  16. /* 禁止模板复制 */
  17. -webkit-user-select: none;
  18. -moz-user-select: none;
  19. -ms-user-select: none;
  20. user-select: none;
  21. }
  22. html,
  23. body {
  24. font-size: 16px;
  25. background: #fff;
  26. font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
  27. }
  28. /* 主要style代码: */
  29. #app {
  30. width: 100vw;
  31. min-height: 100vh;
  32. height: auto;
  33. overflow: hidden;
  34. overflow-y: scroll;
  35. /* 防止iOS卡顿 */
  36. -webkit-overflow-scrolling: touch;
  37. }
  38. ul.box {
  39. width: 100%;
  40. display: -webkit-flex;
  41. display: flex;
  42. flex-direction: column;
  43. }
  44. ul.box li {
  45. display: block;
  46. margin-top: .12rem;
  47. }
  48. ul.box li>p {
  49. box-sizing: border-box;
  50. padding: 0 .1rem;
  51. line-height: .4rem;
  52. font-size: .3rem;
  53. }
  54. ul.box li>video {
  55. margin-top: .1rem;
  56. width: 100%;
  57. height: auto;
  58. object-fit: fill;
  59. overflow: hidden;
  60. }
  61. </style>
  62. </head>
  63. <body>
  64. <div id="app">
  65. <ul class="box" id="videoBox">
  66. <li>
  67. <p>1、挪威理想国</p>
  68. <video controls controlslist="nodownload" disablePictureInPicture playsinline="" x5-playsinline=""
  69. playsinline="" webkit-playsinline=""
  70. poster="https://cs.xinpianchang.com/uploadfile/article/2019/11/05/5dc0e9357cad8.jpeg@960w_540h_1e_1c.jpg"
  71. src="https://qiniu-xpc10.xpccdn.com/5c54f52f221d1.mp4"></video>
  72. </li>
  73. <li>
  74. <p>2、我是阿迪达斯-灰太狼!</p>
  75. <video controls controlslist="nodownload" disablePictureInPicture playsinline="" x5-playsinline=""
  76. playsinline="" webkit-playsinline=""
  77. poster="https://cs.xinpianchang.com/uploadfile/article/2019/11/05/5dc051a64adbc.jpeg@960w_540h_1e_1c.jpg"
  78. src="http://oldvod2.v.news.cn/1F/FE/1f74d72eedda3dc922b3487f49619c4730b4fbfe.mp4"></video>
  79. </li>
  80. </ul>
  81. </div>
  82. </body>
  83. </html>

#app 默认最小高度:min-height:100vh,高度:height:auto,溢出时隐藏:overflow: hidden,y轴时滚动:overflow-y: scroll。

三、video标签相关属性简介

  1. <video
  2. controls
  3. controlslist="nodownload"
  4. disablePictureInPicture
  5. x5-video-player-type='h5'
  6. x5-video-player-fullscreen='true'
  7. playsinline
  8. webkit-playsinline
  9. x-webkit-airplay="allow"
  10. poster=""
  11. src=""
  12. ></video>

注:属性简介

  • controls:向用户显示控件,比如播放按钮;
  • autoplay:视频在就绪后马上播放;
  • controlslist="nodownload" :隐藏video标签下载按钮;
  • disablePictureInPicture:隐藏video标签画中画;
  • x5-video-player-type='h5':启用X5内核的H5播放器;
  • x5-video-player-fullscreen='true': 全屏设置;
  • x5-video-player-orientation="portraint":声明播放器支持的方向,横屏:landscape,竖屏:portraint,默认竖屏播放,无论是直播还是全屏H5一般都是竖屏播放,但是该属性需要x5-video-player-type开启H5模式;
  • playsinline:内联播放;
  • webkit-playsinline:?内联播放;
  • x-webkit-airplay="true /?allow":支持Airplay的设备;
  • poster="":规定视频下载时现实的图像,或者在用户点击播放按钮前显示的图像;
  • src="":要播放视频的URL;
  • loop:当前媒介文件完成播放之后再次开始播放(循环播放);
  • preload:视频在页面加载时进行加载,并预备播放;
  • width:设置视频播放器的宽度;
  • height:设置视频播发器的高度;
  • muted:规定视频的音频输出应该被静音;
  • style="object-fit:fill;" css3样式设置填充整个屏幕video铺满整个屏幕,不按照视频的原始比例

通过属性的设置和样式的控制让视频全屏显示;

原文链接:http://www.cnblogs.com/zxk5211/p/web_28.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号