Я использую плагин jQuery isInViewport
jQuery isInViewport для управления воспроизведением и приостановкой двух видео на одной странице, когда они прокручиваются и исчезают из вида.
Единственный способ заставить его работать - это явная проверка каждого идентификатора видео с помощью двух операторов if.
Следующие работы:
$(window).scroll(function() {
if ( $("video#one").is( ':in-viewport')) {
$("video#one")[0].play();
} else {
$("video#one")[0].pause();
}
if ( $("video#two").is( ':in-viewport')) {
$("video#two")[0].play();
} else {
$("video#two")[0].pause();
}
});
Однако,это неэффективно.Я могу добавить больше видео в будущем.Не имеет смысла настраивать JS каждый раз, когда я меняю видео.
Это то, к чему я стремлюсь ... однако, когда видео 1 прокручивается в поле зрения, оно запускает второе видео (котороеза кадром), чтобы начать воспроизведение.
$(window).scroll(function() {
$("video").each(function() {
if ( $("video").is( ':in-viewport')) {
$("video")[0].play();
} else {
$("video")[0].pause();
}
});
});
Как настроить каждую функцию для воспроизведения и приостановки видео на 1 странице независимо от их количества?