onUnpin — это один из ключевых
колбэк-параметров в библиотеке Headroom.js, отвечающий
за реакцию на событие скрытия шапки при прокрутке страницы вниз. Он
позволяет реализовать кастомное поведение при “отталкивании” верхнего
блока, когда пользователь скроллит контент вниз и навигационная панель
должна исчезнуть.
Параметр задается при инициализации экземпляра Headroom:
const header = document.querySelector('header');
const headroom = new Headroom(header, {
onUnpin: function() {
console.log('Header скрыт при прокрутке вниз');
}
});
headroom.init();
Пояснение:
onUnpin — это функция без аргументов, которая
вызывается каждый раз, когда шапка скрывается в
результате прокрутки вниз.Headroom.js по умолчанию управляет классами для
<header> или другого DOM-элемента:
headroom--unpinned — элемент скрыт (скролл вниз).headroom--pinned — элемент видим (скролл вверх).headroom--top — страница в начале.headroom--not-top — страница прокручена вниз.onUnpin позволяет дополнительно реагировать на
скрытие элемента, например:
const headroom = new Headroom(header, {
onUnpin: function() {
header.style.backgroundColor = 'rgba(0,0,0,0.8)';
header.style.transition = 'background-color 0.3s ease';
}
});
В этом примере при скрытии шапки её фон затемняется, создавая визуальный эффект плавного исчезновения и дополнительной визуальной подсказки пользователю.
Headroom.js поддерживает четыре основных колбэка:
onPin — шапка закреплена, видна.onUnpin — шапка скрыта.onTop — прокрутка в верх страницы.onNotTop — прокрутка вниз от верхней точки.Пример комплексного использования:
const headroom = new Headroom(header, {
onPin: function() {
console.log('Header показан');
},
onUnpin: function() {
console.log('Header скрыт');
},
onTop: function() {
header.style.boxShadow = 'none';
},
onNotTop: function() {
header.style.boxShadow = '0 2px 5px rgba(0,0,0,0.1)';
}
});
Такой подход позволяет точно контролировать поведение шапки в зависимости от прокрутки и состояния страницы.
tolerance и offsetonUnpin тесно связан с настройками
tolerance и
offset, которые определяют момент
срабатывания:
tolerance — минимальное расстояние
прокрутки, после которого шапка скрывается.
const headroom = new Headroom(header, {
tolerance: 10,
onUnpin: function() {
console.log('Сработал unpin после 10px прокрутки вниз');
}
});offset — высота от верхнего края
страницы, после которой включается логика pin/unpin.
const headroom = new Headroom(header, {
offset: 100,
onUnpin: function() {
console.log('Скролл ниже 100px — шапка скрыта');
}
});Эти настройки позволяют гибко регулировать момент, когда
onUnpin активируется, предотвращая слишком резкое
или частое скрытие шапки при мелкой прокрутке.
onUnpinИзменение стилей навигации При скрытии шапки можно уменьшить высоту элементов, менять фон или прозрачность, создавая эффект компактной прокрутки.
Анимации и переходы Запуск CSS-анимаций или анимаций через JavaScript при событии unpin добавляет плавность интерфейсу.
Отправка аналитики Например, фиксировать, что пользователь активно скроллит вниз и скрывает навигационное меню:
onUnpin: function() {
analytics.track('header_hidden');
}Адаптация мобильного интерфейса При прокрутке вниз скрытие шапки освобождает полезное пространство экрана на мобильных устройствах, улучшая UX.
onUnpin срабатывает только при прокрутке
вниз, когда шапка должна исчезнуть.onUnpin,
чтобы не замедлять скролл и отзывчивость интерфейса.onUnpin в Headroom.js обеспечивает тонкую
настройку поведения скрываемой шапки, позволяя сочетать
визуальные эффекты, аналитику и адаптивное управление интерфейсом в
зависимости от прокрутки страницы.