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学习随笔(使用window和frame)的技巧
Mar 08 Javascript
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
select标签模拟/美化方法采用JS外挂式插件
Apr 01 Javascript
JavaScript实现表格排序方法
Jun 14 Javascript
JS控制输入框内字符串长度
May 21 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
vue实现简单瀑布流布局
May 28 Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
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安全配置详细说明
2011/09/26 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
PHP中文编码小技巧
2014/12/25 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
use jscript List Installed Software
2007/06/11 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
javascript中Object使用详解
2015/01/26 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python numpy存取文件的方式
2020/04/01 Python
浙大毕业生自荐信
2014/01/26 职场文书
捐资助学倡议书
2014/04/15 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
企业承诺书格式范文
2015/04/28 职场文书
欠款起诉书范文
2015/05/19 职场文书
《风筝》教学反思
2016/02/23 职场文书
python实现简单的三子棋游戏
2022/04/28 Python