JavaScript全屏和退出全屏事件总结(附代码)

发布时间 - 2026-01-11 02:50:41    点击率:

代码如下:

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当前是否为全屏状态。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对的支持!


# js  # 退出全屏  # 全屏事件  # js全屏显示显示代码的三种方法  # js控制页面的全屏展示和退出全屏显示的方法  # Js浏览器全屏代码(模仿按F11)  # JS实现全屏的四种写法  # js控制浏览器全屏示例代码  # JS 全屏和退出全屏详解及实例代码  # 利用浏览器全屏api实现js全屏  # javascript fullscreen全屏实现代码  # js全屏事件fullscreenchange 实现全屏、退出全屏操作  # 全屏  # 的是  # 的说  # 不需要  # 这篇文章  # 只是一个  # 谢谢大家  # 对不  # 出现了  # 键盘操作  # 网上  # 有疑问  # webkitIsFullScreen  # fullScreen  # mozFullscreenEnabled  # fullscreenEnabled  # isFullscreen  # return  # documentElement  # requestFullscreen 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: b2c电商网站制作流程,b2c水平综合的电商平台?  如何用免费手机建站系统零基础打造专业网站?  如何在IIS中配置站点IP、端口及主机头?  jQuery中的100个技巧汇总  *服务器网站为何频现安全漏洞?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何用狗爹虚拟主机快速搭建网站?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel如何处理文件下载请求?(Response示例)  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  原生JS获取元素集合的子元素宽度实例  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何做网站制作流程,*游戏网站怎么搭建?  北京专业网站制作设计师招聘,北京白云观官方网站?  php485函数参数是什么意思_php485各参数详细说明【介绍】  Python面向对象测试方法_mock解析【教程】  如何挑选最适合建站的高性能VPS主机?  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  QQ浏览器网页版登录入口 个人中心在线进入  Python并发异常传播_错误处理解析【教程】  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Python结构化数据采集_字段抽取解析【教程】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  动图在线制作网站有哪些,滑动动图图集怎么做?  JavaScript如何实现音频处理_Web Audio API如何工作?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel如何使用Service Container和依赖注入?(代码示例)  魔毅自助建站系统:模板定制与SEO优化一键生成指南  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  简历没回改:利用AI润色让你的文字更专业  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  详解MySQL数据库的安装与密码配置  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Java类加载基本过程详细介绍  浅析上传头像示例及其注意事项  Python文件异常处理策略_健壮性说明【指导】  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何实现javascript表单验证_正则表达式有哪些实用技巧