HTML5 video播放器全屏(fullScreen)方法实例


Posted in HTML / CSS onApril 24, 2015

首先来说,这个标题具有误导性,但这样设置改标题也是主要因为video使用的比较多

在html5中,全屏方法可以适用于很多html 元素,不仅仅是video

复制代码
代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>全屏问题</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="imagetoolbar" content="no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<style type="text/css">
*{
padding: 0px;
margin: 0px;
}

body div.videobox{
width: 400px;
height: 320px;
margin: 100px auto;
background-color:#000;
}

body div.videobox video.video
{
width: 100%;
height: 100%;
}

:-webkit-full-screen {

}

:-moz-full-screen {

}

:-ms-fullscreen {

}

:-o-fullscreen {

}

:full-screen {

}

:fullscreen {

}

:-webkit-full-screen video {
width: 100%;
height: 100%;
}
:-moz-full-screen video{
width: 100%;
height: 100%;
}
</style>
</head>
<body>

<div id="videobox">

<video controls="controls" preload="preload" id="video" poster="poster.jpg">
<source src="./movie.ogg" type="video/ogg" />
<source src="./movie.mp4" type="video/mp4" />
<source src="./movie.webm" type="video/webm" />
<object data="./movie.mp4" width="100%" height="100%">
<embed width="100%" height="100%" src="./movie.swf" />
</object>

</video>
<button id="fullScreenBtn">全屏</button>
</div>

<script type="text/javascript">

//反射?用
var invokeFieldOrMethod = function(element, method)
{
var usablePrefixMethod;
["webkit", "moz", "ms", "o", ""].forEach(function(prefix) {
if (usablePrefixMethod) return;
if (prefix === "") {
// 无前缀,方法首字母小写
method = method.slice(0,1).toLowerCase() + method.slice(1);
}
var typePrefixMethod = typeof element[prefix + method];
if (typePrefixMethod + "" !== "undefined") {
if (typePrefixMethod === "function") {
usablePrefixMethod = element[prefix + method]();
} else {
usablePrefixMethod = element[prefix + method];
}
}
});

return usablePrefixMethod;
};

//?入全屏
function launchFullscreen(element)
{
//此方法不可以在?步任?罩?绦校??t火狐?o法全屏
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.msRequestFullscreen){
element.msRequestFullscreen();
} else if(element.oRequestFullscreen){
element.oRequestFullscreen();
}
else if(element.webkitRequestFullscreen)
{
element.webkitRequestFullScreen();
}else{

var docHtml = document.documentElement;
var docBody = document.body;
var videobox = document.getElementById('videobox');
var cssText = 'width:100%;height:100%;overflow:hidden;';
docHtml.style.cssText = cssText;
docBody.style.cssText = cssText;
videobox.style.cssText = cssText+';'+'margin:0px;padding:0px;';
document.IsFullScreen = true;

}
}
//退出全屏
function exitFullscreen()
{
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.oRequestFullscreen){
document.oCancelFullScreen();
}else if (document.webkitExitFullscreen){
document.webkitExitFullscreen();
}else{
var docHtml = document.documentElement;
var docBody = document.body;
var videobox = document.getElementById('videobox');
docHtml.style.cssText = "";
docBody.style.cssText = "";
videobox.style.cssText = "";
document.IsFullScreen = false;
}
}
document.getElementById('fullScreenBtn').addEventListener('click',function(){
launchFullscreen(document.getElementById('video'));
window.setTimeout(function exit(){
//?z查?g?器是否?於全屏
if(invokeFieldOrMethod(document,'FullScreen') || invokeFieldOrMethod(document,'IsFullScreen') || document.IsFullScreen)
{
exitFullscreen();
}
},5*1000);
},false);

</script>
</body>

</html>

HTML5 video播放器全屏(fullScreen)方法实例

HTML / CSS 相关文章推荐
CSS3支持IE6, 7, and 8的边框border属性
Dec 28 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
Nov 16 HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 HTML / CSS
canvas绘制表情包的示例代码
Jul 09 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
Jul 03 HTML / CSS
Canvas 文字碰撞检测并抽稀的方法
May 27 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
Oct 26 HTML / CSS
html5菜单折纸效果
Apr 22 HTML / CSS
从零实现一个自定义html5播放器的示例代码
Aug 01 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
Aug 16 HTML / CSS
CSS3实现360度循环旋转功能
Feb 12 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
Apr 24 #HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
Apr 24 #HTML / CSS
HTML5 Video标签的属性、方法和事件汇总介绍
Apr 24 #HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
Apr 24 #HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 #HTML / CSS
微信浏览器取消缓存的方法
Mar 28 #HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
Mar 27 #HTML / CSS
You might like
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
php curl选项列表(超详细)
2013/07/01 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
node跨域请求方法小结
2017/08/25 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python xlsxwriter模块的使用
2020/12/24 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
老师给学生的表扬信
2014/01/17 职场文书
留学经费担保书
2014/05/12 职场文书
体育运动口号
2014/06/09 职场文书
五四青年节的活动方案
2014/08/20 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Mysql如何查看是否使用到索引
2022/12/24 MySQL