浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题


Posted in Javascript onOctober 10, 2016

如果你想使一个元素在全屏模式下展现 (比如说 <video>),你可以调用该元素的 requestFullscreen() 方法;这个方法在 Gecko 中的实现是 element.mozRequestFullScreen(),在 WebKit 中为 element.webkitRequestFullscreen()。

比如一个实例:

var elem = document.getElementById("myvideo");
if (elem.requestFullscreen) {
 elem.requestFullscreen();		//IE浏览器
} else if (elem.mozRequestFullScreen) {
 elem.mozRequestFullScreen();			//火狐浏览器
} else if (elem.webkitRequestFullscreen) {
 elem.webkitRequestFullscreen();			//谷歌浏览器
}

运行到这里,Gecko 与 WebKit 两个实现中出现了一个值得注意的区别:Gecko 会为元素自动添加 CSS 使其伸展以便铺满屏幕: "width: 100%; height: 100%"。 WebKit 则不会这么做;它会让全屏的元素以原始尺寸居中到屏幕中央,其余部分变为黑色。为了在 WebKit 下也达到与 Gecko 同样的全屏效果,你需要手动为元素增加 CSS 规则"width: 100%; height: 100%;":

function toggleFullScreen() {
 if (!document.fullscreenElement &&  // alternative standard method
   !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
  if (document.documentElement.requestFullscreen) {
   document.documentElement.requestFullscreen();
  } else if (document.documentElement.mozRequestFullScreen) {
   document.documentElement.mozRequestFullScreen();
  } else if (document.documentElement.webkitRequestFullscreen) {
   document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
  }
 } else {
  if (document.cancelFullScreen) {
   document.cancelFullScreen();
  } else if (document.mozCancelFullScreen) {
   document.mozCancelFullScreen();
  } else if (document.webkitCancelFullScreen) {
   document.webkitCancelFullScreen();
  }
 }
}

代码首先检查了 document 上的 fullscreenElement 属性(也检查了带 -moz- 与 -webkit- 两个前缀的)。如果该属性为 null,则 document 当前处于窗口模式,所以我们需要切换进全屏模式。可以通过调用 element.mozRequestFullScreen() 或者 webkitRequestFullscreen()来进入全屏模式,具体调用哪个还要看哪个方法可用。

如果已经激活了全屏模式 (fullscreenElement 非空),我们调用 document.mozCancelFullScreen() 或 webkitCancelFullScreen(),同样要依赖于我们使用了哪个浏览器。

以上就是小编为大家带来的浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
浅谈javascript 面向对象编程
Oct 28 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
Oct 17 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
vue增删改查的简单操作
Jul 15 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
JavaScript获取某一天所在的星期
Sep 05 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
Oct 10 #Javascript
js 弹出虚拟键盘修改密码的简单实例
Oct 10 #Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 #Javascript
js中获取键盘事件的简单实现方法
Oct 10 #Javascript
轻松实现jquery选项卡切换效果
Oct 10 #Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 #Javascript
Javascript生成带参数的二维码示例
Oct 10 #Javascript
You might like
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
十条建议帮你提高Python编程效率
2016/02/16 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
python math模块的基本使用教程
2021/01/16 Python
北京某公司的.net笔试题
2014/03/20 面试题
什么是组件架构
2016/05/15 面试题
资深生产主管自我评价
2013/09/22 职场文书
毕业生个人求职的自我评价
2013/10/28 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
先进个人材料怎么写
2014/12/30 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang