Библиотека Waypoints предоставляет удобный API для отслеживания прокрутки страницы и выполнения функций при достижении определённых элементов. Основная работа ведётся через экземпляры Waypoint, созданные для конкретных DOM-элементов. Каждый экземпляр имеет набор методов, позволяющих управлять поведением, изменять настройки и удалять обработчики.
destroy()Метод destroy() полностью удаляет экземпляр Waypoint,
освобождая связанные ресурсы и отключая обработку события прокрутки для
данного элемента.
var waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
console.log('Достигнут элемент');
}
});
waypoint.destroy(); // Экземпляр больше не реагирует на скролл
Ключевые моменты:
destroy().enable()Метод enable() активирует экземпляр Waypoint, если он
был ранее отключён.
waypoint.disable(); // Отключение
waypoint.enable(); // Включение обратно
Особенности:
disable()Метод disable() деактивирует экземпляр Waypoint,
предотвращая вызов обработчика при прокрутке.
waypoint.disable();
Важно знать:
enable().context()Метод context() возвращает объект
Context, к которому привязан экземпляр Waypoint.
Контекст отвечает за отслеживание прокрутки и пересчёт позиции
элементов.
var context = waypoint.context();
console.log(context); // Объект контекста Waypoints
Применение:
context.refresh().next() и
previous()Методы next() и previous() позволяют
перемещаться по списку Waypoints внутри одного контекста относительно
текущего элемента.
var nextWaypoint = waypoint.next();
var prevWaypoint = waypoint.previous();
Особенности:
undefined.trigger(direction)Метод trigger() вручную инициирует срабатывание
обработчика Waypoint. Параметр direction задаёт направление
скролла: "up" или "down".
waypoint.trigger('down'); // Имитирует прокрутку вниз
waypoint.trigger('up'); // Имитирует прокрутку вверх
Применение:
disable()/enable() для точного контроля
последовательности событий.adapter()Метод adapter() возвращает адаптер Waypoints для работы
с конкретным DOM-элементом. Адаптер скрывает различия между библиотеками
для работы с элементами, такими как jQuery или Zepto.
var $element = waypoint.adapter().$element;
console.log($element); // Возвращает объект jQuery/Zepto или оригинальный DOM
Примечания:
offset()Метод offset() возвращает или устанавливает смещение для
Waypoint относительно его контекста. Смещение определяет, на каком
расстоянии от верхней границы контекста сработает обработчик.
var currentOffset = waypoint.offset(); // Получение текущего значения
waypoint.offset(100); // Установка нового смещения
Особенности:
context.refresh() для пересчёта позиций.group()Метод group() возвращает группу Waypoints, к которой
относится данный экземпляр. Группы управляют срабатыванием нескольких
Waypoints вместе.
var group = waypoint.group();
group.each(function(wp) {
console.log(wp.element);
});
Применение:
refresh()Метод refresh() пересчитывает позиции всех Waypoints в
контексте. Необходимо при динамическом изменении размеров элементов или
их положения на странице.
waypoint.context().refresh();
Ключевые моменты:
refresh() срабатывания могут происходить
некорректно.Эти методы экземпляра образуют основу управления Waypoints на уровне
отдельных элементов и контекста. Правильное использование
enable(), disable(), destroy() и
refresh() обеспечивает стабильную работу скролл-эффектов, а
методы trigger(), offset() и
group() дают гибкий контроль над поведением элементов.