浅谈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创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
Javascript 写的简单进度条控件
Jan 22 Javascript
jquery构造器的实现代码小结
May 16 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
Dec 27 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
js删除Array数组中指定元素的两种方法
Aug 03 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 Javascript
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 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
用户的详细注册和判断
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
[01:52]2020年DOTA2 TI10夏季活动预告片
2020/07/15 DOTA
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
python用match()函数爬数据方法详解
2019/07/23 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
经典演讲稿范文
2013/12/30 职场文书
六十大寿答谢词
2014/01/12 职场文书
高二英语教学反思
2014/01/19 职场文书
大学毕业感言50字
2014/02/07 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
排球赛新闻稿
2015/07/17 职场文书