В библиотеке Headroom.js параметр
onNotTop является одним из ключевых колбэков, отвечающих за
реакцию на прокрутку страницы. Он вызывается всякий раз, когда
пользователь перемещается вниз от верхней границы
страницы, то есть когда верх окна просмотра уже не находится в
начале документа. Этот колбэк используется для реализации различных
эффектов интерфейса, таких как изменение стиля навигационной панели,
добавление теней, изменение прозрачности или фиксирование заголовка.
var headroom = new Headroom(element, {
onNotTop: function() {
// Действия, когда страница не вверху
}
});
headroom.init();
element – DOM-элемент, к которому
применяется Headroom (обычно <header> или
<nav>).onNotTop – функция, вызываемая при
условии, что прокрутка страницы сместилась от верхней границы.Headroom.js отслеживает положение страницы с помощью события
scroll. При каждом событии происходит проверка позиции
прокрутки:
onTop.onNotTop.onNotTop срабатывает каждый раз, когда
пользователь не находится в верхней части страницы, независимо
от направления прокрутки.
var header = document.querySelector("header");
var headroom = new Headroom(header, {
onNotTop: function() {
header.classList.add("scrolled");
},
onTop: function() {
header.classList.remove("scrolled");
}
});
headroom.init();
В этом примере:
<header> добавляется класс
scrolled.var nav = document.querySelector(".navbar");
var headroom = new Headroom(nav, {
offset: 50,
onNotTop: function() {
nav.style.boxShadow = "0 4px 6px rgba(0,0,0,0.1)";
},
onTop: function() {
nav.style.boxShadow = "none";
}
});
headroom.init();
Здесь:
offset для задержки срабатывания
эффекта.onNotTop добавляет тень, когда навигация отходит от
верха.onTop убирает тень при возвращении к верхней
границе.debounce.onTop,
чтобы создавать плавные переходы стилей.onPin и
onUnpin, чтобы управлять поведением шапки при прокрутке
вниз и вверх.onNotTop выполняет тяжелые операции
(например, запросы к DOM или изменение больших блоков), рекомендуется
обернуть её в requestAnimationFrame или использовать
debounce.onNotTop срабатывает даже при
минимальном смещении вниз, поэтому часто используют параметр
offset, чтобы задать порог, после которого колбэк должен
срабатывать.var header = document.querySelector(".header");
var headroom = new Headroom(header, {
offset: 100,
onNotTop: function() {
header.classList.add("fade-in");
header.classList.remove("fade-out");
},
onTop: function() {
header.classList.remove("fade-in");
header.classList.add("fade-out");
}
});
headroom.init();
fade-in и fade-out
позволяет плавно анимировать появление и исчезновение шапки.onNotTop обеспечивает срабатывание анимации при
смещении от верхней границы, без необходимости самостоятельно
отслеживать положение прокрутки.Параметр onNotTop является инструментом для
тонкой настройки поведения элементов интерфейса при прокрутке
вниз, обеспечивая удобный способ реагировать на смещение
страницы от верхней границы и управлять визуальными эффектами.