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内核之基本概念
Oct 21 Javascript
javascript实现文字图片上下滚动的具体实例
Jun 28 Javascript
JS实现程序暂停与继续功能代码解读
Oct 10 Javascript
JavaScript中使用document.write向页面输出内容实例
Oct 16 Javascript
js中this用法实例详解
May 05 Javascript
分享jQuery插件的学习笔记
Jan 14 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
Vue2.0如何发布项目实战
Jul 27 Javascript
JS打印彩色菱形的实例代码
Aug 15 Javascript
vue prop属性传值与传引用示例
Nov 13 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 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中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
php 中的closure用法详解
2017/06/12 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
javascript代码加载优化方法
2011/01/30 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
Node.js实现文件上传
2016/07/05 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
python实现微信防撤回神器
2019/04/29 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python生成特定分布数的实例
2019/12/05 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
小学生新学期寄语
2014/01/19 职场文书
党风廉政建设责任书
2014/04/14 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL