<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>html5视频测试</title>
<style>
*{margin: 0;padding: 0;list-style-type: none;font-family: "微软雅黑";}
.player{width: 1024px;margin: 50px auto;position: relative;}
.player video{width:1024px;}
.player .ctl{width: 1024px;height: 30px;background: rgba(90,90,90,.6);position: absolute;right: 0; bottom: 4px;cursor:default;opacity:0.8;transition:opacity 0.8s;}
.player .ctl .btn,.player .ctl .time{padding: 0 5px; font-size: 14px;line-height: 20px;border-radius: 5px; background: #fff;position: absolute;bottom: 5px;}
.player .ctl .btn-play{left: 20px;}
.player .ctl .btn-jy{right: 200px;}
.player .ctl .btn-qp{right: 20px;}
.player .ctl .sch{height: 12px;border:1px solid #fff;border-radius: 10px;
position: absolute; bottom: 8px;overflow: hidden;z-index: 1;}
.player .ctl .sch-play{width: 400px;left:230px;}
.player .ctl .sch-yl{width:100px;right:80px;}
.player .ctl .sch-play .sch-sp{width: 200px;}
.player .ctl .sch-yl .sch-sp{width: 80px;}
.player .ctl .sch .sch-sp{position: absolute;height: 12px; top: 0;background: #fff;}
.player .ctl .sch-btn{position: absolute;width: 30px;height: 20px;border-radius: 5px; top: 5px;z-index: 2;background: #fff;}
.player .ctl .sch-s{left:430px;}
.player .ctl .sch-y{left:900px;}
</style>
</head>
<body>
<div class="player">
<video>
<source src="潭州教育.mp4" type="video/mp4">
您的浏览器不支持Video标签。
</video>
<ul class="ctl" onselectstart="return false">
<li class="btn btn-play">播放</li>
<li class="time" style="left:100px">00:00:00</li>
<li class="sch sch-play">
<span class="sch-sp" style = "width:0px;"></span>
</li>
<li class="sch-btn sch-s" style="left:215px;"></li>
<li class="time" style="right:300px">00:00:00</li>
<li class="btn btn-jy">静音</li>
<li class="sch sch-yl">
<span class="sch-sp"></span>
</li>
<li class="sch-btn sch-y"></li>
<li class="btn btn-qp">全屏</li>
</ul>
</div>
<script type="text/javascript">
var oVid = document.getElementsByClassName("player")[0];
var oVideo = oVid.children[0];
var oCtl = oVid.children[1]
var oUl = oCtl.children;
var oUlWidth = parseInt(oUl[2].offsetWidth)-2;
var maxTime;
var thisTime;
var oSp = oUl[2].children[0];
console.log(parseInt(oUl[3].style.left));
var oLeft = parseInt(oUl[2].offsetLeft)+parseInt(oVid.offsetLeft)+parseInt(oCtl.offsetLeft);
var oSchSp = parseInt(oVid.offsetLeft);
oUl[0].onclick = function(){
if(oVideo.paused){
oVideo.play();
oUl[0].innerHTML = "暂停";
oVid.onmouseover = function(){
oCtl.style.opacity=0.8;
}
oVid.onmouseout = function(){
oCtl.style.opacity=0;
}
}else{
oVideo.pause();
oUl[0].innerHTML = "播放";
oVid.onmouseover=null;
oVid.onmouseout =null;
}
}
var oDateOvideo = function(time){
time = ""+time;
time = time.length<2?0+time:time;
return time;
}
oVideo.onloadedmetadata = function(){
maxTime = oVideo.duration;
var h = oDateOvideo(Math.floor(maxTime/3600));
var m = oDateOvideo(Math.floor(maxTime%3600/60));
var s = oDateOvideo(Math.floor(maxTime%3600%60));
oUl[4].innerHTML = h+":"+m+":"+s;
}
function date(){
thisTime = oVideo.currentTime;
var h = oDateOvideo(Math.floor(thisTime/3600));
var m = oDateOvideo(Math.floor(thisTime%3600/60));
var s = oDateOvideo(Math.floor(thisTime%3600%60));
oUl[1].innerHTML = h+":"+m+":"+s;
var t = (thisTime/maxTime);
oSp.style.width = parseInt(oUlWidth-2) * t.toFixed(2)+"px";
oUl[3].style.left = 215+parseInt( oSp.style.width ) +"px";
}
oVideo.ontimeupdate = date;
oUl[5].onclick = function(){
if(oVideo.muted){
oVideo.muted=false;
oUl[5].innerHTML = "静音";
}else{
oVideo.muted=true;
oUl[5].innerHTML = "声音";
}
}
var move = function(ev){
ev = ev || window.event;
var _X = ev.clientX;
oVideo.ontimeupdate = null;
var t = _X-oLeft;
oVideo.currentTime = parseInt(maxTime * (t/oUlWidth).toFixed(2));
oSp.style.width = oUlWidth * (t/oUlWidth).toFixed(2)+"px";
oUl[3].style.left = _X - oSchSp-15 +"px";
document.onmousemove = function(ev){
ev = ev || window.event;
var _x = ev.clientX;
var xChange = parseInt(_x)-parseInt(_X);
var t = _x - oLeft;
console.log(oVideo.currentTime);
oVideo.currentTime = parseInt(maxTime * (t/oUlWidth).toFixed(2));
oSp.style.width = oUlWidth * (t/oUlWidth).toFixed(2)+"px";
if ((_x - oSchSp-15)<200) {
oUl[3].style.left = 200+"px";
}
else if ((_x - oSchSp-15)>600) {
oUl[3].style.left = 600+"px";
}
else{
oUl[3].style.left = _x - oSchSp-15+"px";
}
date();
}
document.onmouseup = function(){
document.onmousemove = null;
oVideo.ontimeupdate = date;
}
}
oUl[2].onmousedown = move;
oUl[3].onmousedown = move;
oUl[8].onclick = function(){
if(oVideo.requestFullScreen) {
oVideo.requestFullScreen();
} else if(oVideo.mozRequestFullScreen) {
oVideo.mozRequestFullScreen();
} else if(oVideo.webkitRequestFullScreen) {
oVideo.webkitRequestFullScreen();
}
}
</script>
</body>
</html>