达到效果
且点击放大键可以放大
首先在HTML中建立:
<link rel="stylesheet" href="css/css07.css">//关联css样式
<link rel="stylesheet" href="tubiao07/iconfont.css">//视频中的图标都是用的iconfont
</head>
<body>
<div class="bk" id="bk">
<video id="myv" class="myc" width="600" height="400" >
</video>
<div class="bg" id="bg">
<!-- 进度 -->
<div id="total" class="total">
<div id="current" class="current"></div>
</div>
<!-- 进度 end-->
<!-- 控制区 -->
<span class="iconfont icon-ai10" id="ai10"></span>
<div id="zt">
<span class="iconfont icon-zanting" id="zanTing"></span>
<span class="iconfont icon-bofang" id="boFang"></span>
</div>
<span class="iconfont icon-ai09" id="ai09"></span>
<span class="currentTime" id="currentTime">00:00</span>
<span class="totalTime" id="totalTime">00:00/</span>
<!-- 控制区 end -->
<!-- 音量 -->
<div id="yl">
<span class="iconfont icon-yinliang" id="yinLiang"></span>
<span class="iconfont icon-jingyin" id="jingYin"></span>
</div>
<div class="vBox" id="vBox">
<div class="pBox" id="pBox"></div>
</div>
<span class="iconfont icon-suofang" id="suoFang"></span>
<!-- 音量 end -->
</div>
</div>
<script src="js/js07.js"></script>
</body>
css样式
/* public CSS*/
*{
margin: 0;
padding: 0;
}
ul,li,ol{list-style: none;}
img {border: none;}
/* public CSS end*/
.bk{
background-color: black;
width: 600px;
height: 500px;
margin: 0 auto;
padding: 0;
opacity: 0.8;
}
.myc{
/*margin-left: 20px;*/
margin-top: 20px;
/*opacity: 1;*/
}
.bg{
width: 600px;
height: 40px;
background-color:#999999;
opacity: 0.3;
/*margin-left: 20px;*/
margin-top: 36px;
position: relative;
}
.total{
width: 600px;
height: 5px;
background-color:#F2FAFF;
opacity: 0.8;
border-radius: 5px;
position: absolute;
}
.current{
/*width: 0px;*/
height: 5px;
background-color: pink;
/*opacity: 0.5;*/
position: absolute;
}
.icon-ai10{
position: absolute;
top:10px;
left: 10px;
}
.icon-bofang{
position: absolute;
top:10px;
left: 42px;
display: block;
/*overflow: hidden;*/
/*display: none*/
}
.icon-zanting{
position: absolute;
top:10px;
left: 40px;
display: none;
/*display: block;*/
}
.icon-ai09{
position: absolute;
top:10px;
left: 70px;
}
.totalTime{
font-size: 14px;
position: absolute;
top: 12px;
left: 100px;
}
.currentTime{
font-size: 14px;
position: absolute;
top: 12px;
left: 145px;
}
.icon-yinliang{
position: absolute;
top: 10px;
left: 450px;
}
.icon-jingyin{
position: absolute;
top: 10px;
left: 450px;
display: none;
}
.vBox{
width: 50px;
height: 5px;
background-color: #F2FAFF;
/*position: absolute;*/
/*top: 18px;*/
/*left: 480px;*/
position: absolute;
top: 17px;
left: 480px;
}
.pBox{
width: 25px;
height: 5px;
background-color: pink;
position: absolute;
/*top: 5px;*/
/*left: -500px;*/
}
.icon-suofang{
position: absolute;
top: 10px;
left: 550px;
}
js实现:
{
let myv=document.getElementById("myv");
console.info(myv);
let boFang=document.getElementById("boFang");
let zanTing=document.getElementById("zanTing");
let zt=document.getElementById("zt");
let totalTime=document.getElementById("totalTime");
let total=document.getElementById("total");
let current=document.getElementById("current");
let currentTime=document.getElementById("currentTime");
let vBox=document.getElementById("vBox");
console.info(vBox);
let pBox=document.getElementById("pBox");
let yinLiang=document.getElementById("yinLiang");
let jingYin=document.getElementById("jingYin");
let yl=document.getElementById("yl");
let suoFang=document.getElementById("suoFang");
let ai10=document.getElementById("ai10");
let ai09=document.getElementById("ai09");
let bk=document.getElementById("bk");
let bg=document.getElementById("bg");
console.info(yl);
//初始化
// console.info("myc");
// myv.volume = 0.5;
// // 加载第一个视频
let i=0;
let s=["video/cloud.mp4","video/north.mp4","video/cloud.mp4"];
let p=["video/cloud_img.png","video/north_img.png","video/cloud_img.png"];
myv.src = s[0];//初始化视频
myv.poster = p[0];//初始化视频中显示的图片
// myv.play();
//播放控制
zt.addEventListener("click", function () {
if( myv.paused ){
myv.play();
boFang.style.display="none";
zanTing.style.display="block";
}
else{
myv.pause();
boFang.style.display="block";
zanTing.style.display="none";
}
});
myv.addEventListener("click",function () {
if( myv.paused ){
myv.play();
boFang.style.display="none";
zanTing.style.display="block";
}
else{
myv.pause();
boFang.style.display="block";
zanTing.style.display="none";
}
});
//时长控制
myv.addEventListener("loadedmetadata",function () {
let shi=parseInt((myv.duration%3600)/60);
let miao=Math.ceil(myv.duration%60);
(shi<10)&&(shi="0"+shi);
(miao<10)&&(miao="0"+miao);
totalTime.innerHTML = parseInt((myv.duration)/3600)+":"+ shi+":"+ miao+"/";
if(parseInt((myv.duration)/3600)===0){
totalTime.innerHTML=shi+":"+ miao+"/";
}
});
myv.addEventListener("timeupdate",function () {
let cshi=parseInt((myv.currentTime%3600)/60);
let cmiao=Math.ceil(myv.currentTime%60);
(cshi<10)&&(cshi="0"+cshi);
(cmiao<10)&&(cmiao="0"+cmiao);
currentTime.innerHTML=parseInt((myv.currentTime)/3600)+":"+cshi+":"+ cmiao;
if(parseInt((myv.currentTime)/3600)===0){
currentTime.innerHTML=cshi+":"+cmiao ;
}
// total.innerHTML = 100*myv.currentTime/myv.duration + "%";
current.style.width = 100*myv.currentTime/myv.duration +"%";
});
//时长拖动
total.addEventListener("mousemove",function () {
total.style.height= 20 +"px";
current.style.height=20 +"px";
total.style.top="-"+ 15+"px";
current.style.top="-"+ 0+"px";
});
total.addEventListener("mouseleave",function () {
total.style.height= 5 +"px";
current.style.height=5 +"px";
total.style.top=0 +"px";
current.style.top=0 +"px";
});
let mMove = function(){
let mx = event.offsetX;
current.style.width =mx +"px";
myv.currentTime = 100 * mx /myv.duration +"%";
};
total.addEventListener("mousedown", function () {
let mouseX = event.offsetX ;
current.style.width = mouseX+"px";
myv.currentTime = mouseX /total.offsetWidth * myv.duration;
total.addEventListener("mousemove",mMove);
currentTime.innerHTML=parseInt((myv.currentTime)/3600 )+":"+ parseInt((myv.currentTime%3600)/60)+":"+ Math.ceil(myv.currentTime%60);
if(parseInt((myv.currentTime)/3600)<10){
currentTime.innerHTML=parseInt((myv.currentTime%3600)/60)+":"+ "0"+Math.ceil(myv.currentTime%60);
}
});
total.addEventListener("mouseup",function(){
total.removeEventListener("mousemove",mMove);
});
total.addEventListener("mouseleave",function(){
total.removeEventListener("mousemove",mMove);
});
// 音量控制
let mYin = function(){
let mx = event.offsetX;
pBox.style.width = mx + "px";
myv.volume = mx / 50 ;
};
vBox.addEventListener("mousedown",function(){
if(yinLiang.style.display==="block"){//如果是静音就不能拖动音量条
let mouseX = event.offsetX ;
pBox.style.width = mouseX + "px";
myv.volume = mouseX / 50 ;
vBox.addEventListener("mousemove",mYin);
}
else {
myv.volume=0;
}
});
vBox.addEventListener("mouseup",function(){
if(yinLiang.style.display==="block") {//如果是静音就不能拖动音量条
vBox.removeEventListener("mousemove", mYin);
}
else {
myv.volume=0;
}
});
vBox.addEventListener("mouseleave",function(){
if(yinLiang.style.display==="block") {//如果是静音就不能拖动音量条
vBox.removeEventListener("mousemove", mYin);
}
else {
myv.volume=0;
}
});
//静音的实现
yl.addEventListener("click",function () {
if(myv.volume!==0) {
yinLiang.style.display = "none";
jingYin.style.display = "block";
myv.volume = 0;
}
else {
yinLiang.style.display="block";
jingYin.style.display="none";
myv.volume=0.5;
}
});
//缩放的实现
function FullScreen() {
if (myv .requestFullscreen) {
myv .requestFullscreen();
} else if (myv .mozRequestFullScreen) {
myv .mozRequestFullScreen();
} else if (myv .webkitRequestFullScreen) {
myv .webkitRequestFullScreen();
}
}
function exitFullscreen() {
if (myv.exitFullscreen) {
myv.exitFullscreen();
} else if (myv.mozCancelFullScreen) {
myv.mozCancelFullScreen();
} else if (myv.webkitCancelFullScreen) {
myv.webkitCancelFullScreen();
}
}
suoFang.addEventListener("click",function () {
if(myv.fullScreen){
exitFullscreen();
}else {
FullScreen();
}
// myv.style.height=100+"%";
// bk.style.background="none";
// bg.style.display="none";
});
//视频切换
//下一个视频
ai09.addEventListener("click",function () {
i++;
if(i<=s.length-1){
boFang.style.display="none";
zanTing.style.display="block";
myv.src = s[i];
myv.poster =p[i];
}else {
myv.src = s[0];
myv.poster =p[0];
}
});
//上一个视频
ai10.addEventListener("click",function () {
i--;
if(i>=s[0]){
boFang.style.display="none";
zanTing.style.display="block";
myv.src = s[i];
myv.poster = p[i];
}
else {
myv.src = s[0];
myv.poster = p[0];
}
});
}