浅谈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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
var与Javascript变量隐式声明
Sep 17 Javascript
JQuery困惑—包装集 DOM节点
Oct 16 Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
Bootstrap实现登录校验表单(带验证码)
Jun 23 Javascript
微信小程序授权获取用户详细信息openid的实例详解
Sep 20 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 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
截获网站title标签之家内容的例子
2006/10/09 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
PDO实现学生管理系统
2020/03/21 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
会走路的树教学反思
2014/02/20 职场文书
一年级小学生评语
2014/04/22 职场文书
群教个人对照检查材料
2014/08/20 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
Python实现批量自动整理文件
2022/03/16 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang