新手第一次发CSDN,请多关照
今天我来整理一下视频播放器,主要是javaScript部分。
首先是html部分(我这里只贴出关键部分,其他修饰网页的部分在末尾完整实现代码处贴出)
<div id="player">
<video id="video" src="###" controls="controls" autoplay="autoplay">video>
<div id="name">请选择视频div>
<div id="author">div>
div>
<div id="selector">div>
<div id="d" style="width: 0px; height: 0px;">div>
接下来是css部分,这部分主要是播放框和影视选择框部分的位置等等
值得注意的是:因为视频选择框那里是动态生成的,所以我们用div/video等标签选择器来代表(当然也可以用calss等等:setAttribute(“class”,"…") ;)
#player{
height: 80%;
width: 55%;
position: absolute;
left: 5%;
top: 15%;
box-shadow: 5px 5px 10px 2px black ;
-moz-box-shadow: 5px 5px 10px 2px black ; /* 老的 Firefox */
background-color: white;
}
#player>#video{
width: 100%;
height: 82.3%;
position: absolute;
top: 0;
}
#player>#name{
width: 100%;
height: 15%;
font-size: 30px;
font-family: 华文行楷;
position: absolute;
top: 83%;
overflow: auto;
left: 1%;
}
#player>#author{
width: 100%;
height: 3%;
font-size: 20px;
font-family: 隶书;
position: absolute;
bottom: 2%;
left: 2%;
}
#selector{
overflow: auto;
height: 85%;
width: 30%;
position: absolute;
right: 3%;
top: 12.5%;
background-color: #2F4F4F;
}
#selector>div{ /*这是selector里每个选项框*/
width: 100%;
height: 31%;
position: relative;
padding: 2px 0px;
border-bottom: 2px solid black;
}
#selector>div>video{ /*选项的视频*/
width: 70%;
position: relative;
height: 100%;
float: left;
}
#selector>div>div{ /*选项视频的名称*/
width: 28%;
height: 30%;
position: relative;
padding: 2px 1px;
top: 2%;
cursor: default;
float: right;
color: orange;
zIndex: 9999;
}
首先为
onload事件实行现init()方法,在init()方法内进行选择栏里选项的创建以及调用其他方法为选项增添属性与事件function init(){
window.a=["战场-原样","钢铁侠始,钢铁侠终,爱你三千遍!十年终落幕,无悔","音乐Wu哥","《复联》英雄专属出场BGM,都帅得一塌糊涂,只有星爵像个傻子",
"谷阿莫","【谷阿莫】5分钟看完2016动画电影《大鱼海棠》","轩龙鸽鸽","漫威踩点视频;让人相当舒服的踩点与衔接!","烟季",
"动漫踩点视频;让世界感受这场视觉盛宴吧!","作者Ba1y","超英混剪辑","光影笔墨","全体起立!【进击的巨人最终季】中文预告终于来了,莱纳坐啊!",
"`瞎剪君吴十三","【魁拔IV之最后的魁拔】2020档大电影预告 热血混剪","狗兔电影院","3分钟告诉你《大鱼海棠》讲什么?"];
window.late=document.getElementById("d"); //创建一个全局变量late用于保存上次播放的电影
window.late_1=document.getElementById("d"); //创建一个全局变量late_1用于保存上次悬浮的div
for(window.i=1 ; i<10 ; i++){ //window.变量名:定义全局变量
var video=document.createElement("video"); //创建一个电影并复制src
video.src="./video/"+i+".mp4";
d();
text(window.a[i-1]);
shipin(video);
}
}
function d(){
window.div=document.createElement("div"); //创建电影栏目div用于保存一个电影信息
div.setAttribute("id",i); //setAttribute() :方法添加指定的属性,并为其赋指定的值。
document.getElementById("selector").appendChild(div);
window.div.onmouseover=function(){ //鼠标悬浮事件
if(this!=window.late) //避免鼠标移到正在播放的电影栏目上时也改变背景色
this.style.backgroundColor="cadetblue";
window.late_1=this;
}
window.div.onmouseleave=function(){ //鼠标离开事件
if(window.late!=window.late_1) //避免在离开正在播放的电影栏目时也会恢复其背景色
window.late_1.style.backgroundColor="transparent";
}
}
function shipin(video){
window.div.appendChild(video);
window.div.onclick=function(){ //电影栏目的onclick事件
document.getElementById("video").src=video.src;
window.late.style.backgroundColor="transparent"; //将前一个电影背景色恢复
this.style.backgroundColor="#808080"; //将当前选中的电影背景色改变
document.getElementById("name").innerHTML=a[this.id*2-1]; //动态改变视频名称
document.getElementById("author").innerHTML=a[this.id*2-2]; //动态改变视频作者
window.late=this; //更新late变量
}
}
function text(map){
var div2=document.createElement("div"); //电影的说明文字
div2.innerHTML=window.a[i*2-1];
window.div.appendChild(div2);
}
到这里这个视频播放器就算是完成啦,当然我这里只是挂 上了主要样式,为了美观与大方伙伴们还可以自己加上些其他样式;
<html lang="zh">
<head>
<meta charset="utf-8" />
<title>two.htmltitle>
<style type="text/css">
body{
background-color: rgb(32,177,212);
width: 100%;
height: 100%;
}
*{
margin: 0px;
padding: 0px;
}
#titleBar{
background-color: #07cbc9;
height: 10%;
position: absolute;
width: 100%;
}
#titleBar .logo{
width: 4%;
height: 85%;
margin: 0.4% 0.8%;
float: left;
-webkit-transition: -webkit-transform 0.3s;
}
#titleBar .logo:hover{
transform: scale(1.2,1.2);
}
#titleBar>.name{
font-size: 40px;
font-family: 华文新魏;
margin: 0px 0.8%;
line-height: 180%;
float: left;
background: linear-gradient(135deg,goldenrod 25%,blue 100%); /*设置渐变背景,右下角方向,颜色25%开始*/
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
#titleBar>ul{
float: right;
list-style-type: none;
width: 10%;
margin-right: 5%;
}
#titleBar>ul li{
text-align: center;
width: 50%;
float: left;
font-size: 20px;
font-family: 行楷;
paddig: 0 5%;
line-height: 350%;
transition:font-weight 0.3s, color 0.3s, background-color 0.3s,transform 0.3s;
-moz-transition:font-weight 0.3s, color 0.3s, background-color 0.3s,-moz-transform 0.3s;
-webkit-transition:font-weight 0.3s, color 0.3s, background-color 0.3s,-webkit-transform 0.3s;
-o-transition:font-weight 0.3s, color 0.3s, background-color 0.3s,-o-transform 0.3s;
}
#titleBar>ul li:hover{
font-weight: bolder;
color: white;
background-color: darkslategray;
transform: scale(1.1,1.1);
}
#titleBar>ul a{
color: #000000;
text-decoration: none;
}
#player{
height: 80%;
width: 55%;
position: absolute;
left: 5%;
top: 15%;
box-shadow: 5px 5px 10px 2px black ;
-moz-box-shadow: 5px 5px 10px 2px black ; /* 老的 Firefox */
background-color: white;
}
#player>#video{
width: 100%;
height: 82.3%;
position: absolute;
top: 0;
}
#player>#name{
width: 100%;
height: 15%;
font-size: 30px;
font-family: 华文行楷;
position: absolute;
top: 83%;
overflow: auto;
left: 1%;
}
#player>#author{
width: 100%;
height: 3%;
font-size: 20px;
font-family: 隶书;
position: absolute;
bottom: 2%;
left: 2%;
}
#selector{
overflow: auto;
height: 85%;
width: 30%;
position: absolute;
right: 3%;
top: 12.5%;
background-color: #2F4F4F;
}
#selector>div{ /*这是selector里每个选项框*/
width: 100%;
height: 31%;
position: relative;
padding: 2px 0px;
border-bottom: 2px solid black;
}
#selector>div>video{ /*选项的视频*/
width: 70%;
position: relative;
height: 100%;
float: left;
}
#selector>div>div{ /*选项视频的名称*/
width: 28%;
height: 30%;
position: relative;
padding: 2px 1px;
top: 2%;
cursor: default;
float: right;
color: orange;
zIndex: 9999;
}
style>
<script type="text/javascript">
function init(){
window.a=["战场-原样","钢铁侠始,钢铁侠终,爱你三千遍!十年终 落幕,无悔","音乐Wu哥","《复联》英雄专属出场BGM,都帅得一塌糊涂,只有星爵像个傻子",
"谷阿莫","【谷阿莫】5分钟看完2016动画电影《大鱼海棠》","轩龙鸽鸽","漫威踩点视频;让人相当舒服的踩点与衔接!","烟季",
"动漫踩点视频;让世界感受这场视觉盛宴吧!","作者Ba1y","超英混剪辑","光影笔墨","全体起立!【进击的巨人最终季】中文预告终于来了,莱纳坐啊!",
"`瞎剪君吴十三","【魁拔IV之最后的魁拔】2020档大电影预告 热血混剪","狗兔电影院","3分钟告诉你《大鱼海棠》讲什么?"];
window.late=document.getElementById("d"); //创建一个全 局变量late用于保存上次播放的电影
window.late_1=document.getElementById("d"); //创建一个全局变量late_1用于保存上次悬浮的div
for(window.i=1 ; i<10 ; i++){ //window.变量名:定义全局变量
var video=document.createElement("video"); //创建一个电影并复制src
video.src="./video/"+i+".mp4";
d();
shipin(video);
text(window.a[i-1]);
}
}
function d(){
window.div=document.createElement("div"); //创建电影栏目div用于保存一个电影信息
div.setAttribute("id",i); //setAttribute() :方法添加指定的属性,并为其赋指定的值。
document.getElementById("selector").appendChild(div);
window.div.onmouseover=function(){ //鼠标悬浮事件
if(this!=window.late) //避免鼠标移到正在播放的电影栏目 上时也改变背景色
this.style.backgroundColor="cadetblue";
window.late_1=this;
}
window.div.onmouseleave=function(){ //鼠标离开事件
if(window.late!=window.late_1) //避免在离开正在播放的电影栏目时也会恢复其背景色
window.late_1.style.backgroundColor="transparent";
}
}
function shipin(video){
window.div.appendChild(video);
window.div.onclick=function(){ //电影栏目的 onclick事件
document.getElementById("video").src=video.src;
window.late.style.backgroundColor="transparent"; //将前一个电影背景色恢复
this.style.backgroundColor="#808080"; //将当前选中的电影背景色改变
document.getElementById("name").innerHTML=a[this.id*2-1]; //动态改变视频名称
document.getElementById("author").innerHTML=a[this.id*2-2]; //动态改变视频作者
window.late=this; //更新late变量
}
}
function text(map){
var div2=document.createElement("div"); //电影的说明文字
div2.innerHTML=window.a[i*2-1]; //a数组每两个元素存放一个视频的信息(作者、视频名),所以这里同i*2-1即可找到视频名(i从1开始,下标从0开始)
window.div.appendChild(div2);
}
script>
head>
<body onload="init()">
<h1 style="text-indent: -9999">h1>
<div id="titleBar">
<a href="logo.jpg" target="_blank"><img class="logo" src="./video/logo.jpg" />a>
<p class="name">大雄影视p>
<ul>
<a href="one.html"><li style="cursor: default">注销li>a>
<a href="./video/help.txt"><li style="cursor: help">帮助li>a>
ul>
div>
<div id="player">
<video id="video" src="###" controls="controls" autoplay="autoplay">video>
<div id="name">请选择视频div>
<div id="author">div>
div>
<div id="selector">div>
<div id="d" style="width: 0px; height: 0px;">div>
body>
html>