Библиотека Waypoints представляет собой небольшой, но мощный инструмент для отслеживания положения элементов на странице относительно области видимости браузера. Для корректной работы необходимо учитывать несколько зависимостей и требований к окружению.
Waypoints изначально создавалась как плагин для jQuery, поэтому многие её функции зависят от наличия этой библиотеки. Минимальные требования к версии jQuery:
Подключение осуществляется стандартным способом:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="path/to/jquery.waypoints.min.js"></script>
Важно, чтобы Waypoints подключался после jQuery,
иначе попытка инициализации скриптов приведет к ошибке
Uncaught ReferenceError: jQuery is not defined.
Для проектов, где jQuery не используется, существует Vanilla JS версия Waypoints. Она полностью независима от сторонних библиотек и позволяет использовать функционал Waypoints через чистый JavaScript. Подключение выглядит следующим образом:
<script src="path/to/waypoints.min.js"></script>
Vanilla версия поддерживает все основные функции, включая
scroll, inview, sticky
elements, но не включает jQuery-специфичные методы
($element.waypoint()).
Waypoints поддерживает современные браузеры, включая:
Ключевые моменты:
refresh() для пересчета
позиций.scroll и resize. На устройствах с сенсорным
экраном следует учитывать инерционную прокрутку,
которая может влиять на точность срабатывания waypoint.Для корректной работы Waypoints важны следующие условия:
Элементы должны иметь явные размеры. Waypoints
отслеживает позицию относительно окна браузера, поэтому элемент с
нулевой высотой или скрытый через display: none не
сработает.
Контейнеры с overflow. Если элемент находится
внутри контейнера с overflow: scroll или
overflow: auto, необходимо создать waypoint с указанием
конкретного scrollable context, иначе срабатывание
может не произойти.
Sticky и fixed элементы. При использовании
sticky или fixed элементов Waypoints корректно рассчитывает их позицию
только если parent-контейнеры не имеют трансформаций
(transform: scale или translate), иначе
смещение может быть рассчитано некорректно.
Waypoints включает несколько плагинов для расширения функционала:
position: sticky либо
fallback через JavaScript для старых браузеров.Подключение дополнительных модулей:
<script src="path/to/waypoints.sticky.min.js"></script>
<script src="path/to/waypoints.inview.min.js"></script>
Модули должны подключаться после основной библиотеки Waypoints.
Waypoints можно использовать в современных сборщиках проектов:
ES Modules:
import Waypoint from 'waypoints/lib/noframework.waypoints';CommonJS / Node.js сборки: Waypoints можно
подключить через npm-пакет waypoints или через bundler
(Webpack, Parcel), при этом jQuery-версия требует наличия глобального
window.jQuery.
refresh() после изменений DOM.Правильное соблюдение этих требований обеспечивает стабильную работу Waypoints и корректное срабатывание всех событий при прокрутке страницы.