前言

前面写了一篇文章介绍js的全屏操作
在写判断全屏的地方有遗漏,这里单独拿出来再写一篇专门判断全屏的文章。

判断浏览器是否支持requestFullscreen

首先是一段判断浏览器是否支持h5全屏api(requestFullscreen)的代码,如下:

        /*** [isFullscreenEnabled 判断全屏模式是否是可用]* @return [支持则返回true,不支持返回false]*/function isFullscreenEnabled(){return document.fullscreenEnabled       ||document.mozFullScreenEnabled    ||document.webkitFullscreenEnabled ||document.msFullscreenEnabled || false;}

现在来区分一下全屏的两种情况

第一种:局部全屏,这里得把使用h5全屏api(requestFullscreen)和使用浏览器自带的全屏快捷键F11区分开来,如下图:

图1:这是未进行任何全屏下的状态

图2:这是使用h5全屏api(requestFullscreen)后的全屏

图3:这是使用浏览器自带的全屏快捷键F11达到的全屏

效果显而易见,按F11快捷键的全屏只是把浏览器地址栏给隐藏掉了而已,而h5的全屏api将“需要全屏的dom元素”给全屏了,这个时候就无需判断F11快捷键的全屏了,只需判断h5全屏的属性(fullscreenElement)即可,代码如下:

        /*** [isFullscreen 判断浏览器是否全屏]* @return [全屏则返回当前调用全屏的元素,不全屏返回false]*/function isFullscreen(){return document.fullscreenElement    ||document.msFullscreenElement  ||document.mozFullScreenElement ||document.webkitFullscreenElement || false;}

第二种:整个页面被一个标签铺满,页面没有出现滚动条的全屏(通常是在做网页游戏),在这种情况下,使用h5全屏api(requestFullscreen)和使用浏览器自带的全屏快捷键F11达到的效果是一样的,如下图。

在这种情况下,全屏判断就得考虑是否是按了F11键全屏,此时,就不能使用h5的判断全屏的属性(fullscreenElement)去判断全屏了,此属性只在调用setFullscreen函数全屏时判断有效,而在使用浏览器“F11”全屏快捷键的时候无效,这个时候得根据浏览器可视区域与电脑屏幕大小做比较,来判断是否全屏,无论是setFullscreen函数还是按“F11”亲测有效。代码如下:

        function isFullscreenForNoScroll(){var explorer = window.navigator.userAgent.toLowerCase();if(explorer.indexOf('chrome')>0){//webkitif (document.body.scrollHeight === window.screen.height && document.body.scrollWidth === window.screen.width) {alert("全屏");} else {alert("不全屏");}}else{//IE 9+  fireFoxif (window.outerHeight === window.screen.height && window.outerWidth === window.screen.width) {alert("全屏");} else {alert("不全屏");}}}

总结

isFullscreen方法 有滚动条的页面 无滚动条的页面
Fullscreen api启动的全屏
按f11启动的全屏 × ×

isFullscreenForNoScroll方法 有滚动条的页面 无滚动条的页面
Fullscreen api启动的全屏 ×
按f11启动的全屏 ×

√:方法有效;
×:方法无效;

TODO

目前还无法判断有滚动条按f11的全屏状态。

js全屏操作之判断全屏相关推荐

  1. android手机可以分屏么,安卓手机怎么分屏操作 安卓手机分屏操作设置教程

    相信很多朋友在用手机看视频或者玩游戏聊天以及参加一些应付考试等等的时候,都会想能不能同时打开多个界面,其实是可以的,只是因为很多时候手机的分屏功能没有被大家所重视,分屏操作支持大家同时打开多个界面,与 ...

  2. html5老是自动退出全屏,HTML5--浏览器全屏操作、退出全屏、是否全屏

    Title /*全屏操作的主要方法和属性 * 1.requestFullScreen():开启全屏显示 * 不同浏览器需要添加不同的前缀 * chrome:webkit firefox:moz ie: ...

  3. ios——如何完成截屏操作并将截屏结果保存到设备本地相册

    ios工程--(UIView)获取设备相册权限截取屏幕内容并保存到设备本地相册 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 开发需求:对某个玩法进行截屏操作,并以图片 ...

  4. linux vim分屏函数,Linux学习笔记之十二————vim编辑器的分屏操作

    一.分屏操作: sp: 上下分屏,后可跟文件名 vsp: 左右分屏,后可跟文件名 Ctr+w+w: 在多个窗口切换 二.启动分屏: 1.使用大写O参数进行垂直分屏 $ vim -On file1 fi ...

  5. 三星s8怎么分屏操作_三星Z Fold2双屏拍照体验:连拍照的过程都这么好玩?

    [PConline 专业评测]随着智能手机的普及和手机功能的日益丰富,人们选择一款手机不再仅仅追求性能.屏幕和续航这些可以最直观被感受到的配置参数,而是把更多的决定权交给了拍照.工艺.手感等曾被忽视多 ...

  6. java判断全角半角

    Java判断全角半角: public void chkHalf(str){       for(int i=0;i<str.length;i++)           {             ...

  7. 电脑投屏软件哪个好_无线投屏器和软件投屏的区别是什么,哪个更好用?

    日常生活中,我们运用无线投屏器和软件投屏都可以实现投屏功能,因此就有不少用户会疑惑两者有什么区别,今天小智就带大家来了解一下什么是无线投屏器,什么又是软件投屏,以及两者的不同之处. 一.无线投屏器和软 ...

  8. js全屏事件,进入全屏,退出全屏操作

    上面是全面化方案,下面还有个简单的实现功能 1.进入全屏 function launchFullscreen(element) {if (element.requestFullscreen) {ele ...

  9. esc键退出全屏 vue_Js 网页全屏(vue)-2020-08-26-亲测兼容 F11、ESC的全屏操作

    Js 网页全屏(vue) 效果描述 以下逻辑均正常 点击按钮全屏.点击按钮退出全屏.再点击按钮全屏 点击按钮全屏,F11 / ESC 退出全屏,点击按钮全屏 F11 进入全屏,点击按钮退出全屏 不同页 ...

最新文章

  1. 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
  2. Oracle NULL 和空值
  3. python用pip安装numpy mac_小白入门Python,mac下如何安装pip、ipython
  4. NG客制项目下的I18n国际化标准方案
  5. 为什么说Java 程序员必须掌握 Spring Boot?
  6. 商品审核网页界面_Shopee新手指南:Shopee卖家中心用户界面介绍
  7. IDEA: .java文件和.class不一致
  8. MySQL常用存储引擎
  9. css按钮大小固定,在CSS中创建一个固定宽度的按钮
  10. 计算机视觉及智能影像行业深度研究报告
  11. u盘为什么显示在工具栏而不显示在计算机里,为什么U盘插入后任务栏上显示在我的电脑上不显示...
  12. PostgreSQL视图和物化视图
  13. 基于 Layui form 组件的省市区级联的实现 - 组件化
  14. 游戏:杀戮尖塔(Slay the spire)mod--拉格朗·月
  15. Flutter web 滚动循环 title(Flutter Web端 滚动显示浏览器标签页名)
  16. Spring 加JdbcTemplate 加内存数据库 完成插入和查询功能JDK17版本
  17. 每天一点产品思考(3):“稍后阅读”功能真的能有效解决碎片信息处理问题吗?...
  18. reverse()方法
  19. CMake加入第三方库
  20. USB 3.x之所以有“超速”的表现,完全得益于技术的改进。

热门文章

  1. python学习模拟电路_如何学习使用CircuitPython
  2. 什么是高新技术企业,高新技术企业如何认证?
  3. 华南X79主板数码管数字说明
  4. java中汉字究竟占几个字节?
  5. php变量名开头,PHP中变量的命名必须以开头
  6. Excel中文转拼音,要不要空格可自选
  7. learning的反义词英文_英语反义词
  8. 魔方cfop公式软件_【番外篇】CFOP玩法进阶技巧与衍生解法介绍大全!
  9. 大话IT第11期:陷入***包围的索尼如何收场
  10. 基于像素的碰撞检测(移植到cocos2dx 3.x)