Модуль «Наблюдатель» по появлению элементов при прокрутке страницы (скролле) «Чертоги Фрилансера» v3.0.0

Модуль «Наблюдатель» по появлению элементов при прокрутке страницы (скролле) «Чертоги Фрилансера» v3.0.0

Модуль «Наблюдатель» можно использовать для решения различных задач: анимация элементов при скроле, подсветка активного пункта меню (используется в модуле «Прокрутка в нужный блок») и многих других.

Суть работы наблюдателя заключается в добавлении класса _watcher-view элемента в момент его появления во въезде (экране) при скроле и при открытии страницы. И, соответственно, убран при уходе объекта из вьюпорта.

Подключение модуля

[HTML] Для объекта, за которым требуется установить наблюдение, следует добавить атрибут data-watch

<div data-watch class="block">
	...
</div>

[JS] В файле js/app.js раскомментировать строку import ‘./libs/watcher.js’

Дополнительные настройки:

  • data-watch-root=’селектор’ – селектор отца внутри которого будет наблюдать за объектом. По умолчанию <body>
  • data-watch-margin=’значение’ – отступление от отца. Указываем значение в PX или в %
  • data-watch-threshold=’значение’ – процент отображения объекта для срабатывания. Где 1=100% показ объекта. Указываем только целые или десятичные числа, по умолчанию 0. Может содержать массив значений через запятую.
  • data-watch-once – наблюдать только один раз. То есть класс к объекту добавится только один раз и не будет убран при выходе из вьюпорта.

Пример – класс прибавится только один раз, с появлением объекта на 50% его высоты:

<div data-watch-threshold="0.5" data-watch-once data-watch class="block">
	...
</div>

События

После каждого износа наблюдателя возникает событие watcherCallback , его можно отловить в любой части кода:

document.addEventListener("watcherCallback", function (e) {
	// Полная информация от наблюдателя
	const entry = e.detail.entry;
	// Наблюдаемый объект
	const targetElement = entry.target;
});

Расположение и дополнительные данные

Функционал содержится в файле js/libs/watcher.js . Название класса ScrollWatcher . Модуль построен на основе Intersection Observer API .

Модуль снабжен системой FLS и будет сообщать о своих действиях в консоль браузера.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что будем искать? Например,Человек

Мы в социальных сетях