JavaScript实现网页全屏最大化,最小化

fullscreen.js

// 浏览器进入全屏
export const viewFullScreen = function () {
  // 主要,这边要全屏的对象是这个body,如果只是选择点击的对象,比如 e.currentTarget,那么就会变成只有这个按钮全屏
  var docElm = document.documentElement;
  // 浏览器兼容
  if (docElm.requestFullscreen) {
    docElm.requestFullscreen();
  } else if (docElm.msRequestFullscreen) {
    docElm.msRequestFullscreen();
  } else if (docElm.mozRequestFullScreen) {
    docElm.mozRequestFullScreen();
  } else if (docElm.webkitRequestFullScreen) {
    docElm.webkitRequestFullScreen();
  }
};


// 浏览器退出全屏
export const cancelFullScreen = function () {
  // 浏览器兼容
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen();
  } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
  } else if (document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
  }
};

/**
 * 监听浏览器全屏
 * @param open{Function}
 * @param cancel{Function}
 */
export const listenFullScreen = function (open, cancel) {
  // 浏览器兼容
  if (document.exitFullscreen) {

    document.addEventListener("fullscreenchange", function () {
      (document.fullscreenElement) ? open() : cancel();
    }, false);

  } else if (document.msExitFullscreen) {

    document.addEventListener("msfullscreenchange", function () {
      (document.msFullscreenElement) ? open() : cancel();
    }, false);

  } else if (document.mozCancelFullScreen) {

    document.addEventListener("mozfullscreenchange", function () {
      (document.mozFullScreen) ? open() : cancel();
    }, false);

  } else if (document.webkitCancelFullScreen) {

    document.addEventListener("webkitfullscreenchange", function () {
      (document.webkitIsFullScreen) ? open() : cancel();
    }, false);

  }
};

使用全屏事件只能由用户行为触发,由于浏览器安全机制,不允许代码自动触发

viewFullScreen();  // 进入全屏
cancelFullScreen(); // 退出全屏
listenFullScreen(()=>{

  // 监听进入全屏

},()=>{

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

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,862评论 1 11
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,800评论 1 32
  • 原文链接:Displaying Content in Full Screen using the Fullscre...
    lwbg阅读 4,821评论 0 3
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,378评论 0 7
  • 2019-10-08,从今天开始每天读一本绘本,看一本书 绘本《有一天》,以诗歌的语言讲述人生的成长,教你有快乐去...
    刘强每天读绘本阅读 1,898评论 0 0