1 . 浏览器全屏的实现方式?
-
利用h5的
requestFullScreen -
摁F11实现全屏效果
2 . ### requestFullscreen全屏具体实现
2 . 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();
}
}
上述代码为,兼容其他浏览器,因为不同浏览器内置的API不一样
注:ele:要全屏的元素,可以是document.body也可以是某一个div
2 . 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();
}
}
2 . 3 获取当前全屏的节点:
- document.fullscreenElement()
不同浏览器获取方法不一样 ,所以可以写在一个自定义的获取函数里面。
function getFullscreenElement() {
return (
document.fullscreenElement ||
document.mozFullScreenElement ||
document.msFullScreenElement ||
document.webkitFullscreenElement||null
);
}
2 . 4 判断当前是否全屏:
function isFullScreen() {
return !! (
document.fullscreen ||
document.mozFullScreen ||
document.webkitIsFullScreen ||
document.webkitFullScreen ||
document.msFullScreen
);
}
2 . 5 判断当前文档能否进入全屏?
function isFullscreenEnabled() {
return (
document.fullscreenEnabled ||
document.mozFullScreenEnabled ||
document.webkitFullscreenEnabled ||
document.msFullscreenEnabled
);
}
3 . 注意事项:
-
document下没有requestFullscreen -
requestFullscreen方法只能由用户触发,绑定在元素节点上面 -
页面跳转需先退出全屏
-
进入全屏的元素,将脱离其父元素,所以可能导致之前某些css的失效
- 解决方法: 使用
:full-screen伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)
- 解决方法: 使用
-
一个元素A全屏后,其子元素要再全屏,需先让元素A退出全屏