进入全屏
function request(ele = document.body) {
if (ele.requestFullscreen) {
ele.requestFullscreen();
} else if (ele.mozRequestFullScreen) {
ele.mozRequestFullScreen();
} else if (ele.webkitRequestFullscreen) {
ele.webkitRequestFullscreen();
} else if (ele.msRequestFullscreen) {
ele.msRequestFullscreen();
}
}
退出全屏
function exit() {
if(document.exitFullScreen) {
document.exitFullScreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if(document.msExitFullscreen) {
document.msExitFullscreen();
}
}
获取当前全屏的节点
function fullscreenElement() {
return (
document.fullscreenElement ||
document.mozFullScreenElement ||
document.msFullScreenElement ||
document.webkitFullscreenElement ||
null
);
}
判断当前是否全屏
function isFullScreen() {
return !! (
document.fullscreen ||
document.mozFullScreen ||
document.webkitIsFullScreen ||
document.webkitFullScreen ||
document.msFullScreen
);
}
判断当前文档是否能切换到全屏
function isEnabled() {
return (
document.fullscreenEnabled ||
document.mozFullScreenEnabled ||
document.webkitFullscreenEnabled ||
document.msFullscreenEnabled
);
}
全屏事件
document.addEventListener('fullscreenchange', evt => {
if (document.fullscreenElement) {
console.log('进入全屏')
} else {
console.log('退出全屏')
}
})
注:
document
下没有requestFullscreen
requestFullscreen
方法只能由用户触发,比如:在onload
事件中不能触发- 页面跳转需先退出全屏
- 进入全屏的元素,将脱离其父元素,所以可能导致之前某些css的失效
解决方案:使用:full-screen
伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)- 一个元素A全屏后,其子元素要再全屏,需先让元素A退出全屏
- iframe 引入时要添加
allowfullscreen="true"
属性