JavaScript全屏和退出全屏事件总结(附代码)


Posted in Javascript onAugust 17, 2017

代码如下:

window.isflsgrn = false;//ie11以下是否进入全屏标志,true为全屏状态,false为非全屏状态
      window.ieIsfSceen = false;//ie11是否进入全屏标志,true为全屏状态,false为非全屏状态
      //跨浏览器返回当前 document 是否进入了可以请求全屏模式的状态
      function fullscreenEnable(){
        var isFullscreen = document.fullscreenEnabled ||
        window.fullScreen ||
        document.mozFullscreenEnabled ||
        document.webkitIsFullScreen;
        return isFullscreen;
      }
      //全屏
      var fScreen = function(){
        var docElm = document.documentElement;
        if (docElm.requestFullscreen) {
          docElm.requestFullscreen();
        }
        else if (docElm.msRequestFullscreen) {
          docElm.msRequestFullscreen();
          ieIsfSceen = true;
        }
        else if (docElm.mozRequestFullScreen) {
          docElm.mozRequestFullScreen();
        }
        else if (docElm.webkitRequestFullScreen) {
          docElm.webkitRequestFullScreen();
        }else {//对不支持全屏API浏览器的处理,隐藏不需要显示的元素
          window.parent.hideTopBottom();
          isflsgrn = true;
          $("#fsbutton").text("退出全屏");
        }
      }
      //退出全屏
      var cfScreen = function(){
        if (document.exitFullscreen) {
          document.exitFullscreen();
        }
        else if (document.msExitFullscreen) {
          document.msExitFullscreen();
        }
        else if (document.mozCancelFullScreen) {
          document.mozCancelFullScreen();
        }
        else if (document.webkitCancelFullScreen) {
          document.webkitCancelFullScreen();
        }else {
          window.parent.showTopBottom();
          isflsgrn = false;
          $("#fsbutton").text("全屏");
        }
      }
      //全屏按钮点击事件
      $("#fsbutton").click(function(){
        var isfScreen = fullscreenEnable();
        if(!isfScreen && isflsgrn == false){
          if (ieIsfSceen == true) {
            document.msExitFullscreen();
            ieIsfSceen = false;
            return;
          }
          fScreen();
        }else{
          cfScreen();
        }
      })
      //键盘操作
      $(document).keydown(function (event) {
        if(event.keyCode == 27 && ieIsfSceen == true){
          ieIsfSceen = false;
        }
      });
      //监听状态变化
      if (window.addEventListener) {
        document.addEventListener('fullscreenchange', function(){ 
          if($("#fsbutton").text() == "全屏"){
            $("#fsbutton").text("退出全屏"); 
          }else{
            $("#fsbutton").text("全屏");
          }
        });
        document.addEventListener('webkitfullscreenchange', function(){ 
          if($("#fsbutton").text() == "全屏"){
            $("#fsbutton").text("退出全屏"); 
          }else{
            $("#fsbutton").text("全屏");
          }
        });
        document.addEventListener('mozfullscreenchange', function(){ 
          if($("#fsbutton").text() == "全屏"){
            $("#fsbutton").text("退出全屏"); 
          }else{
            $("#fsbutton").text("全屏");
          }
        });
        document.addEventListener('MSFullscreenChange', function(){ 
          if($("#fsbutton").text() == "全屏"){
            $("#fsbutton").text("退出全屏"); 
          }else{
            $("#fsbutton").text("全屏");
          }
        });
      }

值得注意的是 fullscreenEnabled 参数,网上的说法不一,有的说是监控浏览器是否进入了可以请求全屏模式的状态,有的说只是一个判断浏览器是否支持全屏的标志,实际使用时也确实出现了问题,IE11不能识别这个属性,需要自己单独设置一个标记来控制IE11当前是否为全屏状态。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持!

Javascript 相关文章推荐
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
利用jq让你的div居中的好方法分享
Nov 21 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 Javascript
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
javascript 闭包详解
Feb 15 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
ajax如何实现页面局部跳转与结果返回
Aug 24 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
基于zepto.js实现手机相册功能
Jul 11 Javascript
select标签设置默认选中的选项方法
Mar 02 Javascript
Javascript实现时间倒计时功能
Nov 17 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 #Javascript
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 #Javascript
微信小程序 获取session_key和openid的实例
Aug 17 #Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 #Javascript
BootStrap 页签切换失效的解决方法
Aug 17 #Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 #Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 #Javascript
You might like
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
PyQt5组件读取参数的实例
2019/06/25 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
行政主管岗位职责
2013/11/18 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
开学随笔
2015/08/15 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
基于PyQt5制作一个群发邮件工具
2022/04/08 Python