js监听是否全屏 以及 开启和退出全屏的方法

1、监听是否全屏(F11效果)

原生js自带的方法,试过,好像都不是很好用,自己整理了一下

思路

1、获取当前窗口的高度和宽度;
2、获取可视区域的高度和宽度;
3、进行对比,是否一样大小;

备注:个人觉得只需要判断两者的高度是否一致即可,因为全屏一般情况只是高度会变化,谨慎起见可以宽高都对比一下(我开发中只对比了高度,暂时未发现问题)

代码

以下是在vue中的用法,isFullScreen是判断是否全屏的data中的一个属性

data() {
  isFullScreen: false,
},
methods: {
  judegIsFullScreen() {
    window.onresize = () => {
      // 可视区域的高度
      const clientHeight = document.documentElement.clientHeight || document.body.clientHeight 
      // screen是window的属性方法,window.screen可省略window,指的是窗口
      this.isFullScreen = screen.height == clientHeight
    }
  },
}
    

2、开启和退出全屏的方法

开启全屏

vue中一般都是id为app的元素为根元素,所以相当于是把#app开启全屏

    requestFullScreen() {
      //开启全屏
      let element = document.getElementById('app') 
      let requestMethod =
        element.requestFullScreen || //w3c
        element.webkitRequestFullScreen || // Chrome等
        element.mozRequestFullScreen || // FireFox
        element.msRequestFullScreen // IE11
      if (requestMethod) {
        requestMethod.call(element)
      }
    }
退出全屏
    exitFullscreen() {
      //退出全屏
      if (document.exitFullScreen) {
        document.exitFullScreen()
      } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen()
      } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen()
      } else if (document.msExitFullscreen) {
        document.msExitFullscreen()
      }
    }

END,感谢阅读!欢迎评论区留言讨论~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容