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如何判断不同系统的浏览器类型
Oct 28 Javascript
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
用js传递value默认值的示例代码
Sep 11 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
Vue父子组件双向绑定传值的实现方法
Jul 31 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 Javascript
element中Steps步骤条和Tabs标签页关联的解决
Dec 08 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 Javascript
JS监听Esc 键触发事键
Apr 14 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实现的树形结构数据存取类实例
2014/11/29 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
PHP 图片处理
2020/09/16 PHP
js树形控件脚本代码
2008/07/24 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
Vue实现验证码功能
2019/12/03 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python之os操作方法(详解)
2017/06/15 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
理财学专业自荐书
2014/06/28 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
三下乡个人总结
2015/03/04 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
ES6 解构赋值的原理及运用
2021/05/25 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript