哈哈,大家原谅我这标题太唬人了……

不过真的很有效哎。

以前对付全屏需求,我的做法是重新写一套css,触发事件之后给顶层节点加上class。这样的做法麻烦,不够美观,容易出错。

最近才知道有一种更方便、快捷、优雅、安全的做法。

原来H5自带全屏api啊!

而且全屏效果很酷炫有木有!

废话不多少,直接上代码吧。

//切换全屏效果export function toggleFullScreen(videoElement) {  if (    !document.mozFullScreenElement &&    !document.webkitFullscreenElement &&    !document.fullscreenElement &&    !document.FullscreenElement  ) {    if (videoElement.mozRequestFullScreen) {      videoElement.mozRequestFullScreen();    } else if (videoElement.webkitRequestFullScreen) {      videoElement.webkitRequestFullScreen();    } else if (videoElement.requestFullscreen) {      videoElement.requestFullscreen();    } else if (videoElement.msRequestFullscreen) {      videoElement.msRequestFullscreen();    }  } else {    if (document.mozCancelFullScreen) {      document.mozCancelFullScreen();    } else if (document.webkitCancelFullScreen) {      document.webkitCancelFullScreen();    } else if (document.fullscreen) {      document.exitFullscreen();    } else {      document.msExitFullscreen();    }  }}//验证是否全屏
export function checkFull() {  if (    !document.mozFullScreenElement &&    !document.webkitFullscreenElement &&    !document.fullscreenElement &&    !document.FullscreenElement  ) {    return false;  } else {    return true;  }}//监听全屏事件this.$parent.$el.addEventListener("fullscreenchange", function() {      if (checkFull()) {        self.isFullScreen = true;      } else {        self.isFullScreen = false;      }    });    this.$parent.$el.addEventListener("webkitfullscreenchange", function() {      if (checkFull()) {        self.isFullScreen = true;      } else {        self.isFullScreen = false;      }    });this.$parent.$el.addEventListener("mozfullscreenchange", function() {      if (checkFull()) {        self.isFullScreen = true;      } else {        self.isFullScreen = false;      }    });this.$parent.$el.addEventListener("MSFullscreenChange", function() {      if (checkFull()) {        self.isFullScreen = true;      } else {        self.isFullScreen = false;      }    });
复制代码

有两个需要注意的地方:

1,不同浏览器的兼容写法。

2,元素全屏后,某些功能可能会失效,比如modal,如果是写在元素之外的,那么不会出现,需要将之写在元素内部。

转载于:https://juejin.im/post/5b8df15c51882542d571a9e8

只此一招,全屏操作从此易如反掌相关推荐

  1. html5中音频、视频标签、自定义播放器常用属性及方法、全屏操作、新增属性兼容问题

    多媒体标签: 音频标签audio: <audio src="音频文件的URL"></audio><!-- audio标签需要controls控件才可以 ...

  2. js全屏操作之判断全屏

    前言 前面写了一篇文章介绍js的全屏操作 在写判断全屏的地方有遗漏,这里单独拿出来再写一篇专门判断全屏的文章. 判断浏览器是否支持requestFullscreen 首先是一段判断浏览器是否支持h5全 ...

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

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

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

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

  5. video全屏操作栏自定义样式js 指定元素全屏视频截图下载

    目录 1. 页面结构 2. 全屏方法 3. 截图方法 4. 样式代码 5. 效果截图 6. 附上完整代码 最近遇到的需求就是重新video标签的控制栏的样式,包括进度条.音量.倍速.全屏等样式,在正常 ...

  6. 小型学生计算机怎样玩cf,教您笔记本玩cf如何调全屏操作详细方法

    随着社会的快速发展,电脑已经走进我们的生活中,有用户在笔记本上玩穿越火线我们可能会遭遇不能全屏的尴尬,不能全屏势必会影响玩家操作,降低对游戏的体验程度,那么笔记本玩cf如何调全屏?下面,小编就来跟大家 ...

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

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

  8. 转换文档参数_Word、Excel、PDF多格式转换?只需1招全搞定

    在工作学习中,我们常常会遇到一些文档需要进行格式转换,比如Word文档.excel表格与PDF的互转需求.而想要实现这一操作的技巧有很多,但今天君君要分享的这个PDF转换工具基本可以覆盖全平台了,真正 ...

  9. chrome 浏览器全屏操作

    chrome.exe -kiosk [网页] 转载于:https://www.cnblogs.com/yang95/articles/9335975.html

最新文章

  1. 使用jQuery开发messager消息框插件
  2. Spring Boot神操作-多个数据源Service层封装
  3. 二维计算几何基础知识
  4. 数据库中敏感字段的标记、标示
  5. ADB安卓调试工具使用总结
  6. jdbc的预处理中如何处理模糊查询
  7. fiddler手机端抓包配置
  8. HTTP--历史、组件系统
  9. 从QQ空间热度分析看社区营销
  10. Windows服务一直“正在启动”怎么杀
  11. 经验之谈:学习 Visual Studio Code 不会错!
  12. NOIP2017错题
  13. 基于Java的实现宠物管理系统的设计与实现
  14. 如何快速调整图片亮度和对比度?
  15. -1073740771 (0xC000041D)问题解决方案(已放弃)
  16. 基于Vue的移动端图片裁剪组件 vue-clip(完美兼容ios与安卓)
  17. 从最终用户角度来看外部结构_从不同角度来看您最喜欢的游戏
  18. 外贸B2C系列:google企业邮箱设置
  19. 5个值得关注的L1公链
  20. maven 的使用

热门文章

  1. opengl光照效果_【图形学基础 | Shader】Blinn-Phong 光照模型
  2. spire.doc 转html,c# html 转Word--Spire.Doc
  3. 计算机会计应用实训,计算机会计模拟实习报告.pdf
  4. mysql远程权限grant_mysql 赋给用户远程权限 grant all privileges on
  5. Kernel oops panic 调试 (未完待续)
  6. java dolayout,Component
  7. php常用的技术有哪些,php常用技术
  8. java正则 括号_java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...
  9. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码
  10. python为什么慢_python-为什么startswith比切片慢