浅谈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 相关文章推荐
一步一步教你写一个jQuery的插件教程(Plugin)
Sep 03 Javascript
JavaScript中“基本类型”之争小结
Jan 03 Javascript
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 Javascript
用Move.js配合创建CSS3动画的入门指引
Jul 22 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 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编实现程动态图像的创建代码
2008/09/28 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
PHP对象相关知识总结
2017/04/09 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
python通过索引遍历列表的方法
2015/05/04 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
公司廉洁自律承诺书
2014/03/27 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
农业项目投资意向书
2015/05/09 职场文书
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫