我有5个不同的视频,我希望他们添加更多的一个来源 对他们来说,他们可以在更多的浏览器中玩,但我不知道如何 做到这一点,你可以做到这一点。这是我的javascript的样子 这是非常重复的
function addVideo1() {
var changeStuff = document.getElementById("myVideo");
changeStuff.src = "video/demoreel.mp4";
}
function addVideo2() {
var changeStuff = document.getElementById("myVideo");
changeStuff.src = "video/video1.mp4";
}
function addVideo3() {
var changeStuff = document.getElementById("myVideo");
changeStuff.src = "video/video2.mp4";
}
function addVideo4() {
var changeStuff = document.getElementById("myVideo");
changeStuff.src = "video/video3.mp4";
}
function addVideo5() {
var changeStuff = document.getElementById("myVideo");
changeStuff.src = "video/video4.mp4";
}
答案 0 :(得分:1)
要创建多个来源,您需要在视频代码中包含源元素,而不是使用视频的源属性。使用:
sourceElement=document.createElement("source")
sourceElement.source=someSource
sourceElement.type=someType
changeStuff.appendChild(sourceElement)
答案 1 :(得分:1)
试试这个jsFiddle,它应该做你想要的。
ARGH!我在jQuery中做到了,抱歉。我没有注意。好的,我回去用普通的'javascript。
做了<强> HTML 强>
<div id="video"><video></video></div>
<ul>
<li><a href="#" data-video="video1.mp4">Video 1</a></li>
<li><a href="#" data-video="video2.mp4">Video 2</a></li>
<li><a href="#" data-video="video3.mp4">Video 3</a></li>
</ul>
<强> JS 强>
var elems = document.getElementsByTagName("a");
for (i = 0; i < elems.length; i ++) {
elems[i].addEventListener("click", function () {
var video = this.dataset["video"];
var source = document.createElement("source");
source.src = video;
var container = document.getElementById("video");
var v = container.firstChild;
v.innerHTML = "";
v.appendChild(source);
});
}
<强> CSS 强>
没有必要,只是为了“美化”它
html { padding: 10px; }
#container { width: 450px; }
#video { width: 320px; height: 240px; border: 3px solid #CCC; }
ul { margin: 10px 0; width: 320px; padding: 0; }
ul li { display: inline; margin: 0 10px 0 0; padding: 0; }
答案 2 :(得分:0)
您可以尝试这样的事情(未经测试,在手机上输入)。
function addSource(id,type,path) {
var vid=document.getElementById(id);
vid.innerHTML+='<source src="'+path+'" type="'+type+'">';
}