灯箱关闭时暂停视频 - Javascript
Pause video(s) when lightbox is closed - Javascript
我们的网页上有多个 videos
,大多数视频出现在 light box
中,当我们正在观看 video
并决定关闭它时,我们已经连接了当用户关闭灯箱时将触发一个 javascript
事件,我们想要实现的是当用户单击关闭时我们想要循环所有页面上的 videos
并暂停给定一个当前正在播放的视频,原因是即使 light box
已关闭,视频仍会继续播放。
这是我目前拥有的:
window.addEventListener("click", function(e) {
if (e.target.className.indexOf("close") != -1) {
var video = document.getElementsByTagName("video");
for (var i = 0; i < video.length; i++) {
video[i].addEventListener('timeupdate', function(event) {
var vid = event.target
console.log("here")
vid.pause();
})
}
console.log("close video background");
}
});
现在这个脚本的问题是,当我们第一次点击关闭时,它将 Event Listener
连接到给定的视频,然后暂停它们。问题是,如果我重新打开视频并单击播放,它会立即暂停,因为 Event Listener
有人可以阐明我如何正确暂停视频
找到解决方案:
var video = document.getElementsByTagName("video");
for(var i = 0; i < video.length; i++){
(function(vid) {
vid.currentTime = 0;
vid.pause();
})(video[i]);
}
我们的网页上有多个 videos
,大多数视频出现在 light box
中,当我们正在观看 video
并决定关闭它时,我们已经连接了当用户关闭灯箱时将触发一个 javascript
事件,我们想要实现的是当用户单击关闭时我们想要循环所有页面上的 videos
并暂停给定一个当前正在播放的视频,原因是即使 light box
已关闭,视频仍会继续播放。
这是我目前拥有的:
window.addEventListener("click", function(e) {
if (e.target.className.indexOf("close") != -1) {
var video = document.getElementsByTagName("video");
for (var i = 0; i < video.length; i++) {
video[i].addEventListener('timeupdate', function(event) {
var vid = event.target
console.log("here")
vid.pause();
})
}
console.log("close video background");
}
});
现在这个脚本的问题是,当我们第一次点击关闭时,它将 Event Listener
连接到给定的视频,然后暂停它们。问题是,如果我重新打开视频并单击播放,它会立即暂停,因为 Event Listener
有人可以阐明我如何正确暂停视频
找到解决方案:
var video = document.getElementsByTagName("video");
for(var i = 0; i < video.length; i++){
(function(vid) {
vid.currentTime = 0;
vid.pause();
})(video[i]);
}