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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
Jun 27 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
jquery计算鼠标和指定元素之间距离的方法
Jun 26 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
vue项目实战总结篇
Feb 11 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
Jun 10 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
Nov 13 Javascript
使用Cargo工具高效创建Rust项目
Aug 14 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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
JavaScript Split()方法
2015/12/18 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
Python中函数的用法实例教程
2014/09/08 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
关于Python解包知识点总结
2020/05/05 Python
django 模型中的计算字段实例
2020/05/19 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
小学生自我评价范例
2013/09/24 职场文书
成人大专生实习期的自我评价
2013/10/02 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
《火烧云》教学反思
2016/02/23 职场文书
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python