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 相关文章推荐
event.srcElement 用法笔记e.target
Dec 18 Javascript
用js实现计算加载页面所用的时间
Apr 02 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
详谈JavaScript内存泄漏
Nov 14 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
Vue.js中的图片引用路径的方式
Jul 28 Javascript
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
Sep 18 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
Vue组件化(ref,props, mixin,.插件)详解
May 15 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
PHP图片上传类带图片显示
2006/11/25 PHP
php实现的在线人员函数库
2008/04/09 PHP
PHP 开发环境配置(Zend Server安装)
2010/04/28 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
PyQt5实现拖放功能
2018/04/25 Python
django 微信网页授权登陆的实现
2019/07/30 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
环境科学专业大学生自荐信格式
2013/09/21 职场文书
应聘教师自荐信
2013/10/12 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
个人典型事迹材料
2014/12/30 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
使用Django框架创建项目
2022/06/10 Python