如何单独 pause/play html5 个视频
How to pause/play html5 videos individually
我有一个包含视频列表的页面。我想为它们每个添加一个 pause/play 按钮,以便可以单独控制它们。
不过,我似乎无法让它发挥作用。每个视频都有这个标记:
<div class="media-container">
<button class="pause-play" type="button">Pause/play</button>
<div class="video">
<video playsinline loop muted autoplay>
<source src="https://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
</div>
</div>
这是我尝试过的方法:
onload = e => {
const containers = Array.prototype.slice.apply(document.querySelectorAll('.media-container'));
containers.forEach(container => {
const video = container.querySelector('video');
const playButton = container.querySelector('.pause-play');
playButton.addEventListener('click', e => {
//Pause this individual video...? video.pause();
})
})
}
我得到的错误是:Uncaught TypeError: Cannot read property 'addEventListener' of null
jQuery 也是一个选项...
如你所说我想添加,我猜.pause-play
按钮不在页面中(或者它在页面中但不在.media-container
), 所以不是获取对现有元素的引用:
const playButton = container.querySelector('.pause-play');
您应该创建一个:
const playButton = document.createElement('BUTTON');
playButton.className = 'pause-play';
playButton.addEventListener('click', () => { ... });
container.appendChild(playButton);
我有一个包含视频列表的页面。我想为它们每个添加一个 pause/play 按钮,以便可以单独控制它们。
不过,我似乎无法让它发挥作用。每个视频都有这个标记:
<div class="media-container">
<button class="pause-play" type="button">Pause/play</button>
<div class="video">
<video playsinline loop muted autoplay>
<source src="https://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
</div>
</div>
这是我尝试过的方法:
onload = e => {
const containers = Array.prototype.slice.apply(document.querySelectorAll('.media-container'));
containers.forEach(container => {
const video = container.querySelector('video');
const playButton = container.querySelector('.pause-play');
playButton.addEventListener('click', e => {
//Pause this individual video...? video.pause();
})
})
}
我得到的错误是:Uncaught TypeError: Cannot read property 'addEventListener' of null
jQuery 也是一个选项...
如你所说我想添加,我猜.pause-play
按钮不在页面中(或者它在页面中但不在.media-container
), 所以不是获取对现有元素的引用:
const playButton = container.querySelector('.pause-play');
您应该创建一个:
const playButton = document.createElement('BUTTON');
playButton.className = 'pause-play';
playButton.addEventListener('click', () => { ... });
container.appendChild(playButton);