标签:function 控件 else video 全屏 ele document requestFullscreen
requestFullscreen全屏具体实现
1.进入全屏
function full(ele) {
if (ele.requestFullscreen) {
ele.requestFullscreen();
} else if (ele.mozRequestFullScreen) {
ele.mozRequestFullScreen();
} else if (ele.webkitRequestFullscreen) {
ele.webkitRequestFullscreen();
} else if (ele.msRequestFullscreen) {
ele.msRequestFullscreen();
}
}
ele
:要全屏的元素,可以是document.body
也可以是某一个div
思路:
1.判断该浏览器是否具有requestFullscreen
方法
2.有,则直接执行ele.requestFullscreen()
;没有则做浏览器兼容判断。
2.exitFullScreen退出全屏
function exitFullscreen() {
if(document.exitFullScreen) {
document.exitFullScreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if(document.msExitFullscreen) {
document.msExitFullscreen();
}
}
退出全屏直接使用document
调用exitFullscreen
方法即可。
3.获取当前全屏的节点
function getFullscreenElement() {
return (
document.fullscreenElement ||
document.mozFullScreenElement ||
document.msFullScreenElement ||
document.webkitFullscreenElement||null
);
}
document.fullscreenElement()
:获取当前全屏的元素。
假设id为div1的Element当前为全屏状态则 document.querySelector("#div1")===document.fullscreenElement
4.判断当前是否全屏
function isFullScreen() {
return !! (
document.fullscreen ||
document.mozFullScreen ||
document.webkitIsFullScreen ||
document.webkitFullScreen ||
document.msFullScreen
);
}
5.判断当前文档是否能切换到全屏
function isFullscreenEnabled() {
return (
document.fullscreenEnabled ||
document.mozFullScreenEnabled ||
document.webkitFullscreenEnabled ||
document.msFullscreenEnabled
);
}
注意事项:
1.document
下没有requestFullscreen
2.requestFullscreen
方法只能由用户触发,比如:在onload
事件中不能触发
3.页面跳转需先退出全屏
4.进入全屏的元素,将脱离其父元素,所以可能导致之前某些css的失效
解决方案:使用 :full-screen
伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)
5.一个元素A全屏后,其子元素要再全屏,需先让元素A退出全屏
单击播放/暂停。
function onDocumentClick(event) {
clearTimeout(clickTimeId);
//执行延时
clickTimeId = setTimeout(function() {
//此处为单击事件要执行的代码
if(video.paused){
video.play();
}else{
video.pause();
}
}, 250);
}
双击全屏/解除全屏
function onDocumenDblClick(event) {
clearTimeout(clickTimeId);
console.log("鼠标双击");
console.log(isFullScreen())
if(isFullScreen()){
exitFullscreen()
}else{
full(video)
}
}
隐藏vedio控件 css :
video::-webkit-media-controls{
display:none !important;
}
标签:function,控件,else,video,全屏,ele,document,requestFullscreen 来源: https://www.cnblogs.com/blueball/p/11169486.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。