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编写COM组件的步骤
Mar 17 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
基于打包工具Webpack进行项目开发实例
May 29 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
用webpack4开发小程序的实现方法
Jun 04 Javascript
layui实现数据分页功能
Jul 27 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
用于table内容排序
2006/07/21 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
PHP7新特性简述
2017/06/11 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
django定期执行任务(实例讲解)
2017/11/03 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
python写一个md5解密器示例
2018/02/23 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
pytorch的batch normalize使用详解
2020/01/15 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
《植物妈妈有办法》教学反思
2014/02/25 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
如何写观后感
2015/06/19 职场文书
会议简讯范文
2015/07/20 职场文书
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
Nginx如何配置根据路径转发详解
2022/07/23 Servers