Библиотека Waypoints построена с учётом широкого спектра браузеров, включая устаревшие версии, что обеспечивает стабильное поведение скролл-триггеров на различных платформах. Основная задача Waypoints — отслеживание пересечения элементов страницы с видимой областью браузера, и для этого используются стандартные возможности DOM и событий прокрутки.
Waypoints корректно работает в последних версиях следующих браузеров:
Для этих браузеров используются стандартные события
scroll и методы getBoundingClientRect, что
позволяет с высокой точностью определять положение элементов на
странице. Благодаря этому триггеры срабатывают без задержек и не
вызывают мерцаний интерфейса даже при динамическом изменении размеров
элементов.
Waypoints ориентирована на совместимость с устаревшими версиями браузеров, включая:
Для старых браузеров предусмотрена обработка особенностей работы
событий scroll и resize. В частности:
event.target
и window.pageYOffset.document.documentElement.scrollTop и
document.body.scrollTop для IE.position: fixed и position: absolute, которые
в старых браузерах иногда вызывают некорректное вычисление
координат.Waypoints поддерживает мобильные браузеры, включая Safari на iOS и Chrome на Android. Здесь учитываются следующие моменты:
touchmove: на сенсорных
устройствах прокрутка может не инициировать стандартное событие
scroll в привычном виде. Waypoints автоматически
привязывает обработку к событиям
touchstart/touchmove при необходимости.window.innerHeight.Для IE9–IE11 Waypoints:
attachEvent и
addEventListener с fallback.getBoundingClientRect для элементов, которые могут быть
невидимыми или иметь display: none.requestAnimationFrame, что
улучшает плавность анимаций при срабатывании точек останова.Waypoint.refreshAll().Waypoint.refreshAll() после изменения DOM
или подгрузки контента через AJAX.Waypoints сочетает современные возможности браузеров с кросс-браузерной совместимостью, обеспечивая стабильное срабатывание точек останова независимо от платформы или устройства.