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 相关文章推荐
关于JavaScript的一些看法
May 27 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
Dec 02 Javascript
javascript 清空form表单中某种元素的值
Dec 26 Javascript
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
Apr 02 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
jQuery实现日期联动效果实例
Jul 26 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
vue element upload实现图片本地预览
Aug 20 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
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
解析php中curl_multi的应用
2013/07/17 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
jquery select操作的日期联动实现代码
2009/12/06 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
全面了解js中的script标签
2016/07/04 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
基于python指定包的安装路径方法
2018/10/27 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
医院辞职信范文
2014/01/17 职场文书
写自荐信的注意事项
2014/03/09 职场文书
护士求职信
2014/07/05 职场文书
写给医生的感谢信
2015/01/22 职场文书
物流业务员岗位职责
2015/04/03 职场文书
食堂管理制度范本
2015/08/04 职场文书
python前后端自定义分页器
2022/04/13 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers