浅谈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中confirm,alert,prompt函数区别分析
Jan 17 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
JS数组返回去重后数据的方法解析
Jan 03 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
JavaScript验证知识整理
Mar 24 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
JavaScript 中的12种循环遍历方法【总结】
May 31 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
AngularJS上传文件的示例代码
Nov 10 Javascript
面试中canvas绘制图片模糊图片问题处理
Mar 13 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php简单提示框alert封装函数
2010/08/08 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
php可变长参数处理函数详解
2017/02/22 PHP
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python监控文件或目录变化
2016/06/07 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
士力架广告词
2014/03/20 职场文书
活动宣传策划方案
2014/05/23 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
2016年情人节问候语
2015/11/11 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android