浅谈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 相关文章推荐
JS在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
JS实现的视频弹幕效果示例
Aug 17 Javascript
详解Angular6学习笔记之主从组件
Sep 05 Javascript
vue-自定义组件传值的实例讲解
Sep 18 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
js 对象使用的小技巧实例分析
Nov 08 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
Aug 03 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开发文件系统实例讲解
2006/10/09 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
jQuery中读取json文件示例代码
2013/05/10 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
javascript实现动态标签云
2015/10/16 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
JS前端笔试题分析
2016/12/19 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
JS中的BOM应用
2018/02/02 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python迭代和迭代器详解
2016/11/10 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
sklearn的predict_proba使用说明
2020/06/28 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
旷课检讨书1000字
2014/02/14 职场文书
公司建议书怎么写
2014/05/15 职场文书
司法局火灾防控方案
2014/06/05 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
六查六看自查报告
2014/10/14 职场文书
自我评价优缺点范文
2015/03/11 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫