У меня есть эта функция, которая запускает видео при прокрутке к нему:
var _video = document.getElementById('video-one');
function isScrolledIntoView(element) {
var elementTop = element.getBoundingClientRect().top,
elementBottom = element.getBoundingClientRect().bottom;
return elementTop >= 0 && elementBottom <= window.innerHeight;
}
window.addEventListener("scroll", function() {
if (isScrolledIntoView(_video)) {
_video.play();
}
});
Проблема в том, что после того, как видео останавливается, и я прокручиваю его назад и возвращаюсь к нему - оно запускается снова. Но мне нужно, чтобы он запускался только один раз, только при первом прокрутке. Я попытался пометить функцию для запуска один раз, но она не работает:
var _video = document.getElementById('video-one');
function isScrolledIntoView(element) {
var elementTop = element.getBoundingClientRect().top,
elementBottom = element.getBoundingClientRect().bottom;
return elementTop >= 0 && elementBottom <= window.innerHeight;
}
var started = false;
if (!started) {
window.addEventListener("scroll", function() {
if (isScrolledIntoView(_video)) {
_video.play();
}
});
started = false;
}
Что я делаю не так?