I need to pause a video if it is not in view
the below code works only for the first video in list
how to make it working for all .bvideo
?
JavaScript
x
14
14
1
<video class='bvideo' src='a.mp4' poster='a.jpg' preload='none' controls></video>
2
<video class='bvideo' src='b.mp4' poster='b.jpg' preload='none' controls></video>
3
<video class='bvideo' src='c.mp4' poster='c.jpg' preload='none' controls></video>
4
5
let io = new IntersectionObserver((entries) => {
6
entries.forEach(entry => {
7
if(!entry.isIntersecting){entry.target.pause();}
8
});
9
});
10
11
$(document).ready(function(){
12
io.observe(document.querySelector('.bvideo'));
13
});
14
Advertisement
Answer
Use querySelectorAll() method.
JavaScript
1
5
1
$(document).ready(function() {
2
let bvideos = document.querySelectorAll('.bvideo');
3
bvideos.forEach(bvideo => io.observe(bvideo));
4
});
5