JS实现元素的全屏、退出全屏功能

 在实际开发中,我们很可能需要实现某一元素的全屏和退出全屏功能,如canvas。所幸的是,js提供了相关api用来处理这一问题,只需简单的调用requestFullScreenexitFullScreen即可。但这两个api一般而言需要考虑其兼容性问题,那么就需要额外封装一下。笔者参考相关资料,结合自身实践,最终整理出以下封装函数,理念虽然没有特别之处,但这种封装的写法却属于一种微原创。以下经过实际项目验证可行(如有误,欢迎指出):

一、全屏

  // 全屏的兼容
  const fullScreen = ele => {
    const func =
      ele.requestFullscreen ||
      ele.mozRequestFullScreen ||
      ele.webkitRequestFullscreen ||
      ele.msRequestFullscreen;
    func.call(ele);
  };

在上面的函数中,首先是判断浏览器支持的api是哪一个,以实现兼容,而后调用它。在调用的时候需要重新绑定一下ele,否则会报错。这种写法避免了繁琐的if else写法,更加易读。

二、退出全屏

  // 退出全屏的兼容
  const exitFullscreen = () => {
    const func =
      document.exitFullScreen ||
      document.mozCancelFullScreen ||
      document.webkitExitFullscreen ||
      document.msExitFullscreen;
    func.call(document);
  };

理由同上,这里需要注意的是,无需再传递dom元素,因为退出全屏属于document的api。

原文地址:https://www.cnblogs.com/twodog/p/12134722.html