JS 全屏和退出全屏--requestFullScreen详解及兼容代码

发布时间 2023-10-08 11:32:14作者: 、小情调

浏览器全屏实现方式

1.利用h5的 requestFullScreen

2.摁F11实现全屏效果

requestFullscreen全屏具体实现

1.进入全屏

 

 
  1.  
    function full(ele) {
  2.  
    if (ele.requestFullscreen) {
  3.  
    ele.requestFullscreen();
  4.  
    } else if (ele.mozRequestFullScreen) {
  5.  
    ele.mozRequestFullScreen();
  6.  
    } else if (ele.webkitRequestFullscreen) {
  7.  
    ele.webkitRequestFullscreen();
  8.  
    } else if (ele.msRequestFullscreen) {
  9.  
    ele.msRequestFullscreen();
  10.  
    }
  11.  
    }
 
 

ele:要全屏的元素,可以是document.body也可以是某一个div
思路:
1.判断该浏览器是否具有requestFullscreen方法
2.有,则直接执行ele.requestFullscreen();没有则做浏览器兼容判断。

2.exitFullScreen退出全屏

 

 
  1.  
    function exitFullscreen() {
  2.  
    if(document.exitFullScreen) {
  3.  
    document.exitFullScreen();
  4.  
    } else if(document.mozCancelFullScreen) {
  5.  
    document.mozCancelFullScreen();
  6.  
    } else if(document.webkitExitFullscreen) {
  7.  
    document.webkitExitFullscreen();
  8.  
    } else if(document.msExitFullscreen) {
  9.  
    document.msExitFullscreen();
  10.  
    }
  11.  
    }
 
 

退出全屏直接使用document调用exitFullscreen方法即可。

3.获取当前全屏的节点

 

 
  1.  
    function getFullscreenElement() {
  2.  
    return (
  3.  
    document.fullscreenElement ||
  4.  
    document.mozFullScreenElement ||
  5.  
    document.msFullScreenElement ||
  6.  
    document.webkitFullscreenElement||null
  7.  
    );
  8.  
    }
 
 

document.fullscreenElement():获取当前全屏的元素。
假设id为div1的Element当前为全屏状态则 document.querySelector("#div1")===document.fullscreenElement

4.判断当前是否全屏

 

 
  1.  
    function isFullScreen() {
  2.  
    return !! (
  3.  
    document.fullscreen ||
  4.  
    document.mozFullScreen ||
  5.  
    document.webkitIsFullScreen ||
  6.  
    document.webkitFullScreen ||
  7.  
    document.msFullScreen
  8.  
    );
  9.  
    }
 
 

5.判断当前文档是否能切换到全屏

 

 
  1.  
    function isFullscreenEnabled() {
  2.  
    return (
  3.  
    document.fullscreenEnabled ||
  4.  
    document.mozFullScreenEnabled ||
  5.  
    document.webkitFullscreenEnabled ||
  6.  
    document.msFullscreenEnabled
  7.  
    );
  8.  
    }
 
 

注意事项:

1.document下没有requestFullscreen
2.requestFullscreen方法只能由用户触发,比如:在onload事件中不能触发
3.页面跳转需先退出全屏
4.进入全屏的元素,将脱离其父元素,所以可能导致之前某些css的失效
解决方案:使用 :full-screen伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)
5.一个元素A全屏后,其子元素要再全屏,需先让元素A退出全屏