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 相关文章推荐
一个js封装的不错的选项卡效果代码
Feb 15 Javascript
超简单的jquery的AJAX用法
May 10 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
Jan 22 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
JavaScript无操作后屏保功能的实现方法
Jul 04 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
微信小程序排坑指南详解
May 23 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
Apr 29 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程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
浅析Python中的多重继承
2015/04/28 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
Python实现的快速排序算法详解
2017/08/01 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
总经理岗位职责描述
2014/02/08 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
董存瑞观后感
2015/06/11 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
nginx安装以及配置的详细过程记录
2021/09/15 Servers