介绍
全屏效果和退出全屏效果,我们可能在看视频网站时看到比较多,这里来为各位介绍利用JavaScript进入全屏和退出全屏代码示例。
代码已对市面上主流浏览器如:谷歌、火狐、360等进行了兼容,不过IE低版本有点瑕疵(全屏状态下仍有底部的状态栏)。
演示代码
<!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>js全屏和退出全屏代码</title><body><!-- requestFullScreen(document.documentElement): 整个网页进入全屏requestFullScreen(document.getElementById("video-box")): 指定某块区域全屏--><button onclick="requestFullScreen(document.documentElement)">全屏显示</button><button onclick="exitFull()">退出全屏</button></body><script type="text/javascript">function requestFullScreen(element) {// 判断各种浏览器,找到正确的方法var requestMethod = element.requestFullScreen || //W3Celement.webkitRequestFullScreen || //Chrome等element.mozRequestFullScreen || //FireFoxelement.msRequestFullScreen; //IE11if (requestMethod) {requestMethod.call(element);}else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorervar wscript = new ActiveXObject("WScript.Shell");if (wscript !== null) {wscript.SendKeys("{F11}");}}}// 退出全屏 判断浏览器种类function exitFull() {// 判断各种浏览器,找到正确的方法var exitMethod = document.exitFullscreen || //W3Cdocument.mozCancelFullScreen || //Chrome等document.webkitExitFullscreen || //FireFoxdocument.webkitExitFullscreen; //IE11if (exitMethod) {exitMethod.call(document);}else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorervar wscript = new ActiveXObject("WScript.Shell");if (wscript !== null) {wscript.SendKeys("{F11}");}}}</script></html>
我们知道,浏览器全屏通常按快捷键F11。JS控制浏览器全屏也不稀奇,它让Web应用看上去更像似原生软件应用效果。比如点餐系统、叫号系统等等。
JS让浏览器全屏及退出全屏的方法网上很多,这不是重点,重点是需注意:浏览器全屏只能通过鼠标手势点击事件去触发。
实现说明:
- 利用h5的requestFullScreen
 - 摁F11实现全屏效果
requestFullscreen全屏具体实现
1.进入全屏
ele:要全屏的元素,可以是document.body也可以是某一个divfunction 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();}}
思路:
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退出全屏
