单击特定的 h3 标签后如何更改视频的来源?
How can I change the source of a video after clicking a specific h3 tag?
所以我目前正在尝试制作一个视频流媒体网站,但我有点卡住了。
我试图让剧集选择器改变视频的来源,但我对如何让它改变播放器的来源有点困惑。我还尝试根据选择的视频更改播放器下方的文本。
<div class="container">
<div class="main-video">
<div class="video">
<video src="video link here"></video>
<h3 class="ep-title">00. Prologue</h3>
</div>
</div>
<div class="episode-list">
<div class="episode active">
<img src="image link here" alt="">
<h3 class="title">00. Prologue</h3>
</div>
<div class="episode">
<img src="image link here" alt="">
<h3 class="title">01. A Winter Day, A Fateful Night</h3>
</div>
</div>
</div>
</div>
<script>
let listVideo = document.querySelectorAll('.episode-list .episode');
let mainVideo = document.querySelector('.main-video video');
let title = document.querySelector('.main-video .title')
listVideo.forEach(video =>{
video.onclick = () =>{
listVideo.forEach(episode => episode.classList.remove('active'));
video.classList.add('active');
};
});
</script>
这是我的页面代码(不包括导航栏和 plyr 代码)目前的样子。我事先道歉,因为我的问题可能有点复杂(我缺乏脑细胞哈哈)但任何帮助表示赞赏:)
我认为 mainVideo.setAttribute('src', YOURSOURCELINK);
应该更改视频源。要更改标题文本,您可以使用 title.innerHTML = "NEWTEXT"
例如:
“索引”参数是列表中的索引(请记住,js 的第一个索引以 0 开头),因此要获取第一集,您可以使用 changeVideo(0),对于第二集,您可以使用 changeVideo(1)等等
var list = [{
title: "Episode 1",
src: "some source link"
},{
title: "Episode 2",
src: "seconde source link"
}];
function changeVideo(index){
let mainVideo = document.querySelector('.main-video video');
let title = document.querySelector('.main-video .title')
mainVideo.setAttribute("src", list[index].src)
title.innerHTML = list[index].title
}
那么您需要在您的视频中添加一个点击事件 select,例如在您的 <div class="episode">
中添加 onclick="changeVideo(1)"
const btn = document.getElementById('change-url');
const video = document.getElementById('video');
btn.addEventListener('click',()=>{
console.log(video)
video.setAttribute('src','http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4');
})
<button id="change-url">change url</button>
<br/><br/>
<video id="video" src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" width="300px" controls autoplay></video>
我试图让剧集选择器改变视频的来源,但我对如何让它改变播放器的来源有点困惑。我还尝试根据选择的视频更改播放器下方的文本。
<div class="container">
<div class="main-video">
<div class="video">
<video src="video link here"></video>
<h3 class="ep-title">00. Prologue</h3>
</div>
</div>
<div class="episode-list">
<div class="episode active">
<img src="image link here" alt="">
<h3 class="title">00. Prologue</h3>
</div>
<div class="episode">
<img src="image link here" alt="">
<h3 class="title">01. A Winter Day, A Fateful Night</h3>
</div>
</div>
</div>
</div>
<script>
let listVideo = document.querySelectorAll('.episode-list .episode');
let mainVideo = document.querySelector('.main-video video');
let title = document.querySelector('.main-video .title')
listVideo.forEach(video =>{
video.onclick = () =>{
listVideo.forEach(episode => episode.classList.remove('active'));
video.classList.add('active');
};
});
</script>
这是我的页面代码(不包括导航栏和 plyr 代码)目前的样子。我事先道歉,因为我的问题可能有点复杂(我缺乏脑细胞哈哈)但任何帮助表示赞赏:)
我认为 mainVideo.setAttribute('src', YOURSOURCELINK);
应该更改视频源。要更改标题文本,您可以使用 title.innerHTML = "NEWTEXT"
例如:
“索引”参数是列表中的索引(请记住,js 的第一个索引以 0 开头),因此要获取第一集,您可以使用 changeVideo(0),对于第二集,您可以使用 changeVideo(1)等等
var list = [{
title: "Episode 1",
src: "some source link"
},{
title: "Episode 2",
src: "seconde source link"
}];
function changeVideo(index){
let mainVideo = document.querySelector('.main-video video');
let title = document.querySelector('.main-video .title')
mainVideo.setAttribute("src", list[index].src)
title.innerHTML = list[index].title
}
那么您需要在您的视频中添加一个点击事件 select,例如在您的 <div class="episode">
onclick="changeVideo(1)"
const btn = document.getElementById('change-url');
const video = document.getElementById('video');
btn.addEventListener('click',()=>{
console.log(video)
video.setAttribute('src','http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4');
})
<button id="change-url">change url</button>
<br/><br/>
<video id="video" src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" width="300px" controls autoplay></video>