浅谈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 相关文章推荐
关于scrollLeft,scrollTop的浏览器兼容性测试
Mar 19 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
Nov 08 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
实现React单页应用的方法详解
Aug 02 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
jQuery.parseHTML() 函数详解
Jan 09 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
使用PHP开发留言板功能
2019/11/19 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
vue router2.0二级路由的简单使用
2017/07/05 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python找出9个连续的空闲端口
2016/02/01 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
python中提高pip install速度
2020/02/14 Python
Python流程控制常用工具详解
2020/02/24 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
机械工程系毕业生求职信
2013/09/27 职场文书
教师队伍管理制度
2014/01/14 职场文书
酒吧创业计划书
2014/01/18 职场文书
铁路安全反思材料
2014/12/24 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
医院员工辞职信范文
2015/05/12 职场文书
新学期开学标语2015
2015/07/16 职场文书
比较几种Redis集群方案
2021/06/21 Redis