Поэтому мне было интересно, смогу ли я сделать так, чтобы видео на моем веб-сайте начинало играть, когда пользователь просматривает его. Я пробовал довольно много вещей, таких как scrollspy и какой-то другой код, который я нашел на этом веб-сайте, но ничто из этого не работает, я всегда получаю тот же результат: сайт полностью запутывается, фотографии перемещаются из поля зрения, разделы меняют места или исчезают, и это не очень весело.
Это текущий JS-код для нашего MediaElementPlayer:
if ($('.video-promo').length ) {
var player_promo = new MediaElementPlayer('.video-promo', {
videoWidth: '100%',
videoHeight: '100%',
loop: false,
alwaysShowControls: true,
features: [],
});
player_promo.play();
}
И HTML:
<section class="promo motions">
<video class="video-promo">
<source type="video/mp4" src="assets/video/demo.mp4" />
</video>
<div class="video-overlay"></div>
</section>
Приветствия за любую помощь! : D
Проверьте ответ Dan: Как узнать, отображается ли элемент DOM в текущем окне просмотра?
Вкратце вы можете добавить:
function isElementInViewport (el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */
rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */
);
}
function elementVisibilityMayChange () {
return function () {
if ( isElementInViewport($('.video-promo')[0]) ) {
player_promo.play();
}
}
}
var handler = elementVisibilityMayChange();
$(window).on('DOMContentLoaded load resize scroll', handler);