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基础函数整理汇总
Jan 30 Javascript
jQuery处理json数据返回数组和输出的方法
Mar 11 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
vue实现表格数据的增删改查
Jul 10 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
微信小程序仿微信运动步数排行(交互)
Jul 13 Javascript
简述JS浏览器的三种弹窗
Jul 15 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
谈一谈vue请求数据放在created好还是mounted里好
Jul 27 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遍历二维数组的代码
2011/04/22 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
对于Python的Django框架部署的一些建议
2015/04/09 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python安装requests库的实例代码
2019/06/25 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python logging设置和logger解析
2019/08/28 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
基于python实现坦克大战游戏
2020/10/27 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
纺织工程专业个人求职信范文
2014/01/27 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
重温入党誓词主持词
2015/06/29 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers