Скрипт для включения видео при прокрутке

Суть задачи, чтобы видео, которое находится где-то на странице, включалось только при прокрутке страницы, когда само видео появляется на экране. При этом видео становится на паузу, если хоть немного выходит за экраны, и пользователь не сможет насладиться полным отображением видеозаписи.

Реализовать можно разными методами и со сторонними библиотеками, но самый простой вариант рассмотрим в примере ниже:

See the Pen Playing video when scrolling and video visible fully on screen by Denis (@deniscreative) on CodePen.0

Как вариант, можно использовать различные плагины для определения положения объектов на экране например, плагин isInViewport, только с использованием данного плагина видео будет включаться даже при появлении на экране небольшой части видео, а не при появлении всего видео целиком.

Такой получился скрипт:

$(function() {
  var $video = $('.video');
  var $window = $(window);

  $window.scroll(function() {
    if ($video.is(":in-viewport")) {
      $video[0].play();
    } else {
      $video[0].pause();
    }
  });
});

Вот рабочий пример, только в JS я подключил и сам скрипт isInViewport.min.js (потому что не получилось подключить его в CodePen по быстрому по другому), а скрипт, который описан выше добавлен под код скрипта isInViewport.min.js в строках [9-21], ну вы поняли, в общем.

See the Pen Playing video when scrolling and video visible fully on screen with plugin isInViewport by Denis (@deniscreative) on CodePen.0

Пошаговая инструкция по работе с git и github для студентов

Необходимое ПО В первую очередь надо установить клиент git: обязательно потребуется консольный клиент, доступный по…

CSS Grid

  CSS Grid — это технология совершенно новая и официально стала поддерживаться современными браузерами только…

Bootstrap 4

  18 января 2018 года вышла из беты долгожданная версия Bootstrap 4, основанная на использовании…

Простое добавление иконки в google map

Добавляем кастомную иконку в googlemap на своем сайте. JS

5 комментариев

Семён

А сеть решение где на странице несколько плееров и они переключаются по мере прокрутки?

Можно просто на разные видео повесить разные классы

Семен
<video class="video123"

А как же в js коде?

var $video = $('.video');

.video(?) — а тут какая то переменная нужна?

Все таки нужно какое-то другое решение.
Смогу посмотреть позже.
Если найдете ответ — скидывайте, будет пример для других.

Семен

Хорошо. Почти сутки не могу решения найти ) Если что напишу

Ответить