Waypoints — это лёгкая библиотека на JavaScript, предназначенная для отслеживания положения элементов на странице и запуска функций при достижении определённых точек прокрутки. Для начала работы с ней требуется корректно подключить библиотеку к проекту и подготовить базовую структуру кода.
Наиболее простой способ использования Waypoints — подключение через
CDN. Это позволяет не скачивать библиотеку локально и сразу использовать
её функционал. В <head> или перед закрывающим тегом
</body> добавляется ссылка на скрипт:
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min.js"></script>
После подключения скрипта объекты Waypoint становятся доступными в глобальной области видимости, и можно создавать точки срабатывания прокрутки.
Преимущества подключения через CDN:
Недостатки:
Для проектов, где требуется полная автономность, Waypoints можно
скачать и подключить локально. Скачанный файл
jquery.waypoints.min.js или
noframework.waypoints.min.js размещается в директории
проекта, например, /js/. Подключение происходит через тег
<script>:
<script src="js/noframework.waypoints.min.js"></script>
Если проект использует jQuery, доступна отдельная версия с поддержкой jQuery:
<script src="js/jquery.waypoints.min.js"></script>
При локальном подключении также можно контролировать версию библиотеки, что важно для совместимости с другими скриптами.
Для проектов на Node.js и сборщиков модулей (Webpack, Parcel, Vite) удобнее использовать пакетный менеджер. Waypoints доступна через npm:
npm install waypoints
После установки библиотека импортируется в JavaScript-код:
import Waypoint from 'waypoints/lib/noframework.waypoints';
Для использования версии с jQuery:
import 'waypoints/lib/jquery.waypoints';
Импорт через npm позволяет:
Waypoints работает с любыми DOM-элементами, но для корректного срабатывания требуется, чтобы элементы имели фиксированные размеры или были видимы при прокрутке. Обычно создаются контейнеры с классами или идентификаторами:
<div id="section1" class="waypoint-section">
Контент первой секции
</div>
<div id="section2" class="waypoint-section">
Контент второй секции
</div>
Элементы можно стилизовать через CSS, задавая высоту, отступы и границы, чтобы прокрутка срабатывала предсказуемо:
.waypoint-section {
height: 600px;
padding: 20px;
border-bottom: 1px solid #ccc;
}
После подключения библиотеки и подготовки HTML создаётся объект Waypoint:
var waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
console.log('Секция достигнута! Направление: ' + direction);
},
offset: '50%'
});
Основные параметры:
element — элемент DOM, за которым отслеживается
прокрутка.handler — функция, вызываемая при пересечении
точки.offset — смещение относительно верха окна, может быть в
пикселях или процентах.Если проект использует jQuery, подключённая версия позволяет создавать waypoint более лаконично:
$('#section2').waypoint(function(direction) {
console.log('Секция 2 достигнута! Направление: ' + direction);
}, { offset: '75%' });
jquery.waypoints.min.js.Пример базовой структуры HTML с подключением через CDN:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Waypoints Demo</title>
<style>
.waypoint-section { height: 600px; padding: 20px; border-bottom: 1px solid #ccc; }
</style>
</head>
<body>
<div id="section1" class="waypoint-section">Секция 1</div>
<div id="section2" class="waypoint-section">Секция 2</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min.js"></script>
<script>
var waypoint1 = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) { console.log('Секция 1 достигнута: ' + direction); },
offset: '50%'
});
</script>
</body>
</html>
Такое подключение обеспечивает корректную работу Waypoints и готовит проект к дальнейшему использованию всех возможностей библиотеки — от простого отслеживания до сложных анимаций при прокрутке.