浅谈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 相关文章推荐
javascript中的对象和数组的应用技巧
Jan 07 Javascript
jQuery ajax BUG:object doesn't support this property or method
Jul 06 Javascript
js中匿名函数的N种写法
Sep 08 Javascript
javascript的数据类型、字面量、变量介绍
May 23 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
Aug 15 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
Mar 26 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 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处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
php socket通信简单实现
2016/11/18 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
详解ES6中的let命令
2020/04/05 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python MD5文件生成码
2009/01/12 Python
Python中的引用和拷贝浅析
2014/11/22 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
如何让python的运行速度得到提升
2020/07/08 Python
关于python中remove的一些坑小结
2021/01/04 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
航空大学应届生求职信
2013/11/10 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
南极大冒险观后感
2015/06/05 职场文书