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官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 Javascript
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
把input初始值不写value的具体实现方法
Jul 04 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
Apr 12 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
node.js学习之断言assert的使用示例
Sep 28 Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 Javascript
puppeteer库入门初探
Jan 09 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
localStorage实现便签小程序
2016/11/28 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
10分钟学会js处理json的常用方法
2020/12/06 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
采购文员岗位职责
2013/11/20 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
环卫工人节活动总结
2014/08/29 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
违纪学生保证书
2015/02/27 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers