js实现窗口全屏示例详解


Posted in Javascript onSeptember 17, 2019

前言

该 demo 包含全屏事件、退出全屏事件以及屏幕状态改变的钩子函数的封装
以下是一个完整示例,只需整体拷贝下来运行即可(注意引入了 jquery)

请在这里查看示例☞ fullscreen示例

示例

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>demo</title>
 <script src="js/jquery-1.11.3.min.js"></script>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
  /* 窗口全屏样式 */
  html:-moz-full-screen { 
   background: grey; 
  } 
  html:-webkit-full-screen { 
   background: grey; 
  } 
  html:fullscreen { 
   background: grey; 
  }

  div {
   width: 100px;
   height: 100px;
   background: blue;
  }
  img {
   width: 80px;
   height: 80px;
  }
 </style>
</head>
<body>
 <button class="win-fullscreen">窗口全屏</button>
 <button class="div-fullscreen">div全屏</button>
 <button class="img-fullscreen">img全屏</button>
 <button class="exit-fullscreen">退出全屏</button>
 <div class="div">
  <img class="img" src="images/a.png">
 </div>
</body>
<script>
 /* 调用示例 */
 // 窗口全屏
 $('.win-fullscreen').on('click', function() {
  requestFullScreen(document.documentElement);
 });

 // div全屏
 $('.div-fullscreen').on('click', function() {
  requestFullScreen($('.div')[0]);
 });

 // img全屏
 $('.img-fullscreen').on('click', function() {
  requestFullScreen($('.img')[0]);
 });

 // 退出全屏
 $('.exit-fullscreen').on('click', function() {
  exitFull();
 });

 // 窗口状态改变事件
 fullscreenchange(document, function(isFull) {
  console.log(isFull);
 });

 /* 封装 */
 // 窗口状态改变
 function fullscreenchange(el, callback) {
  el.addEventListener("fullscreenchange", function () { 
   callback && callback(document.fullscreen);
  }); 
  el.addEventListener("webkitfullscreenchange", function () { 
   callback && callback(document.webkitIsFullScreen);
  }); 
  el.addEventListener("mozfullscreenchange", function () { 
   callback && callback(document.mozFullScreen);
  }); 
  el.addEventListener("msfullscreenchange", function () { 
   callback && callback(document.msFullscreenElement);
  });
 }

 // 全屏
 function requestFullScreen(element) {
  var requestMethod = element.requestFullScreen || //W3C
  element.webkitRequestFullScreen || //Chrome等
  element.mozRequestFullScreen || //FireFox
  element.msRequestFullScreen; //IE11
  if (requestMethod) {
   requestMethod.call(element);
  }else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
   var wscript = new ActiveXObject("WScript.Shell");
   if (wscript !== null) {
    wscript.SendKeys("{F11}");
   }
  }
 }

 //退出全屏
 function exitFull() {
  var exitMethod = document.exitFullscreen || //W3C
  document.mozCancelFullScreen || //Chrome等
  document.webkitExitFullscreen || //FireFox
  document.webkitExitFullscreen; //IE11
  if (exitMethod) {
   exitMethod.call(document);
  }else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
   var wscript = new ActiveXObject("WScript.Shell");
   if (wscript !== null) {
    wscript.SendKeys("{F11}");
   }
  }
 }
</script>
</html>

参考文章

Native Fullscreen JavaScript API (plus jQuery plugin)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的私有成员
Sep 18 Javascript
javascript图像处理—仿射变换深度理解
Jan 16 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
May 09 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
使用webpack和rollup打包组件库的方法
Feb 25 Javascript
js实现简单页面全屏
Sep 17 #Javascript
js模拟F11页面全屏显示
Sep 17 #Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
Sep 17 #Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
Sep 17 #Javascript
Cordova(ionic)项目实现双击返回键退出应用
Sep 17 #Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 #Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 #Javascript
You might like
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
ES6新特性一: let和const命令详解
2017/04/20 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
js实现翻牌小游戏
2020/07/31 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
Python递归实现汉诺塔算法示例
2018/03/19 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
利用anaconda保证64位和32位的python共存
2021/03/09 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Python中bisect的使用方法
2019/12/31 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
大学毕业的自我鉴定
2013/10/08 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
门市房租房协议书
2014/12/04 职场文书
2015年教研员工作总结
2015/05/26 职场文书
小学运动会通讯稿
2015/07/18 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python