В библиотеке Waypoints параметр offset
играет ключевую роль при определении момента срабатывания точки
(waypoint) относительно текущей позиции скролла страницы. Он позволяет
смещать триггерное событие вверх или вниз, создавая более точный
контроль над поведением анимаций, навигации и других интерактивных
элементов.
offsetoffset задаёт смещение в пикселях или в процентах
относительно верхнего края контейнера, к которому привязан waypoint. Его
значение определяет, когда waypoint считается достигнутым:
var waypoint = new Waypoint({
element: document.getElementById('my-element'),
handler: function(direction) {
console.log('Waypoint сработал! Направление:', direction);
},
offset: 100
});
В этом примере waypoint сработает, когда верх элемента
#my-element достигнет 100 пикселей от верхнего края
окна.
Ключевые моменты:
offset может быть числом в пикселях (например,
200) или процентом от высоты окна (например,
'50%').viewport).Пиксельные значения дают точный контроль над моментом срабатывания waypoint.
var waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
console.log('Section 1 достигнут!');
},
offset: 150
});
Здесь waypoint активируется, когда верх элемента
section1 находится на 150 пикселей ниже верхней
границы окна.
Особенности:
offset: -50
Так waypoint сработает 50 пикселей выше видимой верхней границы окна.
offsetПроцентные значения позволяют динамически адаптировать срабатывание к различным размерам экранов.
offset: '25%'
Примеры:
var waypoint = new Waypoint({
element: document.getElementById('promo'),
handler: function(direction) {
console.log('Промо-блок достигнут на 25% высоты окна');
},
offset: '25%'
});
'50%' удобно для анимаций при половине
видимости элемента.'100%' срабатывает, когда верх элемента
совпадает с нижним краем окна.offset через функциюWaypoints поддерживает использование функции для вычисления
offset на лету. Это позволяет учитывать динамические
элементы или изменяющиеся размеры окна.
var waypoint = new Waypoint({
element: document.getElementById('dynamic-section'),
handler: function(direction) {
console.log('Динамический offset сработал:', direction);
},
offset: function() {
return window.innerHeight / 3;
}
});
Waypoints передаёт параметр direction в обработчик,
который может быть 'down' или 'up'. Смещение
offset влияет на точку, где waypoint срабатывает в
зависимости от направления скролла.
handler: function(direction) {
if (direction === 'down') {
console.log('Элемент прокручен вниз с offset:', this.offset);
} else {
console.log('Элемент прокручен вверх с offset:', this.offset);
}
}
offsetФиксированные шапки и навигация
offset: 80 // Учитывает высоту шапки при активации менюАнимации при частичном появлении элемента
offset: '75%' // Элемент начинает анимироваться, когда он почти видимДинамические макеты и адаптивный контент
offset: function() { return window.innerHeight / 2; } Отложенная загрузка контента
offset: 300 // Подгрузка элементов перед их появлением в зоне видимостиПонимание и грамотное использование числовых значений
offset позволяет создавать плавные, отзывчивые и
визуально привлекательные интерфейсы, где события срабатывают именно в
тот момент, который необходим для пользовательского опыта.