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 相关文章推荐
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
Jan 27 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
Dec 13 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
详解node服务器中打开html文件的两种方法
Sep 18 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
vue 配置多页面应用的示例代码
Oct 22 Javascript
vue中v-show和v-if的异同及v-show用法
Jun 06 Javascript
微信小程序实现选项卡滑动切换
Oct 22 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 Ubb代码编辑器函数代码
2012/07/05 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php去除数组中重复数据
2014/11/18 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
Dom 结点创建 基础知识
2011/10/01 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
javascript中this的四种用法
2015/05/11 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Python温度转换实例分析
2018/01/17 Python
Python for循环与range函数的使用详解
2019/03/23 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
python 如何将office文件转换为PDF
2020/09/22 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
预备党员表决心书
2014/03/11 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
三潭印月的导游词
2015/02/12 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技