浅谈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 相关文章推荐
去除链接虚线全面分析总结
Aug 15 Javascript
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
javascript弹出拖动窗口
Aug 11 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
AngularJS 过滤与排序详解及实例代码
Sep 14 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
Oct 31 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
Js跳出两级循环方法代码实例
Sep 22 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
用PHP动态创建Flash动画
2006/10/09 PHP
PHP框架性能测试报告
2016/05/08 PHP
菜单效果
2006/10/14 Javascript
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python输出指定月份日历的方法
2015/04/23 Python
python定时关机小脚本
2018/06/20 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python os.fork() 循环输出方法
2019/08/08 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
如何将字串String转换成整数int
2015/02/21 面试题
家电业务员岗位职责
2014/03/10 职场文书
捐款倡议书
2014/04/14 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
七一建党节慰问信
2015/02/14 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
python如何利用traceback获取详细的异常信息
2021/06/05 Python