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 相关文章推荐
jQuery中after的两种用法实例
Jul 03 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
用Js实现的动态增加表格示例自己写的
Oct 21 Javascript
javaScript如何生成xmlhttp
Dec 16 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
js 获取范围内的随机数实例代码
Aug 02 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
vue.js使用3DES加密的方法示例
May 18 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
May 13 Javascript
如何在JavaScript中使用localStorage详情
Feb 04 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
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
js倒计时显示实例
2016/12/11 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
js读取本地文件的实例
2017/12/22 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
js数组的基本使用总结
2021/01/18 Javascript
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Python 类的特殊成员解析
2018/06/20 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
Python实现FLV视频拼接功能
2020/01/21 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
销售经理竞聘书
2014/03/31 职场文书
财务情况说明书范文
2014/05/06 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
颐和园导游词
2015/01/30 职场文书
应收账款管理制度
2015/08/06 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书