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 相关文章推荐
js里怎么取select标签里的值并修改
Dec 10 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
vue-router结合vuex实现用户权限控制功能
Nov 14 Javascript
Angular value与ngValue区别详解
Nov 27 Javascript
AutoJs实现刷宝短视频的思路详解
May 22 Javascript
详解vue父子组件状态同步的最佳方式
Sep 10 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
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/01/17 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
javascript中Object使用详解
2015/01/26 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
小程序实现多列选择器
2019/02/15 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
自学python的建议和周期预算
2019/01/30 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
wxpython绘制音频效果
2019/11/18 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
如何解决python多种版本冲突问题
2020/10/13 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
html5启动原生APP总结
2020/07/03 HTML / CSS
一些Solaris面试题
2013/03/22 面试题
C++程序员求职信
2014/05/07 职场文书
运动会方队口号
2014/06/07 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
学校运动会开幕词
2016/03/03 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
php中pcntl_fork详解
2021/04/01 PHP
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技
基于Redission的分布式锁实战
2022/08/14 Redis