实现了移动端点击图片视屏全屏播放,退出视屏隐藏
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> html, body { padding: 0; margin: 0; 100%; height: 100%; -webkit-user-select: none; user-select: none; overflow: hidden; } #videobox { 100px; height: 100px; overflow: hidden; background-color: red; } video { 1px; display: blcok; } </style> </head> <body> <div id="videobox"> <video id="video" playsinline webkit-playsinline="true" src="http://7xvl2z.com1.z0.glb.clouddn.com/nigg2.mp4"></video> </div> <script type="text/javascript"> var video = document.querySelector('#video'); var videobox = document.querySelector('#videobox'); //播放时改变外层包裹的宽度,使video宽度增加, //相应高度也增加了,播放器控件被挤下去,配合overflow:hidden //控件看不见也触摸不到了 var setVideoStyle = function() { videobox.style.width = '120%';//把视屏撑大20%为了把控制条顶出可视区域 videobox.style.left = '-10%'; video.style.width = '100%'; } document.getElementById('videobox').addEventListener('click', function() { setVideoStyle(); document.getElementById('video').play();//一般是点击一张图片视屏开始播放 }, false); document.getElementById('video').addEventListener('ended', function() { document.getElementById('videobox').style.display = "none";//监听视屏是否播放完成,完成后把视屏隐藏 }, false); document.getElementById('video').addEventListener('pause', function() { document.getElementById('videobox').style.display = "none";//监听视屏是否暂停 }, false); </script> </body> </html>
playsinline webkit-playsinline 这两个属性则是对视频全屏处理的
比较纠结的一个问题是,如果用户在视屏没有完全播放完的时候就退出视屏通过什么来监听这个动作,视屏全部放完的话直接ended的就可以了,找了一些方法
和资料也并没有奏效,后来我想用户在没看完的情况下退出全屏这个动作视屏当时应该是会自己自动的暂停吧,于是我就用pause试了一下果然是可行的
onplaying 事件在视频暂停后准备开始播放时执行 JavaScript
这里贴出主要资料的地址:
https://segmentfault.com/a/1190000006857675#articleHeader4