【发布时间】:2014-06-30 16:59:20
【问题描述】:
我有几行 Javascript 为 HTML5 视频定义了一个自定义“播放”按钮。
我遇到的问题是它们适用于一个视频,并且仅适用于一个视频。我想在我的页面上有几个视频,它们都使用相同的 Javascipt 代码。这样播放按钮就可以在每个视频上单独工作。目前它仅适用于 HTML 中列出的第一个视频。
我该如何进行这项工作?
JS
var vid, playbtn;
function intializePLayer(){
vid = document.getElementById("my_video");
playbtn = document.getElementById("playpausebtn");
playbtn.addEventListener("click",playPause,false);
}
window.onload = intializePLayer;
function playPause(){
if(vid.paused){
vid.play();
playbtn.style.opacity = '0';
}else{
vid.pause();
playbtn.style.background = "url('http://i61.tinypic.com/xm8qdu.png')";
playbtn.style.backgroundSize = "105px 105px";
playbtn.style.opacity = '1';
}
}
CSS
#video_container{
position:relative;
width:480px;
height:264px;
}
button#playpausebtn{
background:url('http://i61.tinypic.com/xm8qdu.png') no-repeat;
position:absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin:auto;
border:none;
outline:none;
width:105px;
height:105px;
cursor:pointer;
background-size: 105px 105px;
}
HTML
<!-- Video #1 -->
<div id="video_container">
<button id="playpausebtn"></button>
<video id="my_video" width="480" loop>
<source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>
</div>
<!-- Video #2 -->
<div id="video_container">
<button id="playpausebtn"></button>
<video id="my_video" width="480" loop>
<source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>
</div>
【问题讨论】:
-
ID 必须是唯一的。使用类并按类而不是 id 获取元素
-
ID 应该是唯一的,使用类,正如 Popnoodles 所说的那样。
-
你不能有两个具有相同 ID 的元素。
-
是否可以使用 .class 来做到这一点?如果我在同一页面上说 10 个视频并且每个视频都需要一个唯一的 ID,这似乎是过多的代码。
标签: javascript html controls