Как запустить MediaElementPlayer при прокрутке в окне?

0

Поэтому мне было интересно, смогу ли я сделать так, чтобы видео на моем веб-сайте начинало играть, когда пользователь просматривает его. Я пробовал довольно много вещей, таких как 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

  • 0
    Не могли бы вы опубликовать скрипку, чтобы помочь вам быстрее?
Теги:
video

1 ответ

0

Проверьте ответ 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); 
  • 0
    Ура! Где я должен добавить это?
  • 0
    В любом месте на странице с видео плеер будет делать.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню