Headroom.js — это легковесная библиотека для управления поведением заголовков при скролле страницы. Одним из ключевых параметров, влияющих на реакцию заголовка, является чувствительность к скроллу. Правильная настройка чувствительности позволяет добиться плавного скрытия и появления шапки без резких скачков и ложных срабатываний.
toleranceTolerance — основной механизм контроля чувствительности.
Он определяет, на сколько пикселей необходимо прокрутить страницу, чтобы
сработало событие скрытия или показа заголовка.
Синтаксис:
var header = new Headroom(document.querySelector("header"), {
tolerance: {
up: 5,
down: 10
}
});
header.init();
offsetOffset задает точку отсчета, с которой начинается
отслеживание скролла. До достижения этой величины заголовок ведет себя
как статичный.
var header = new Headroom(document.querySelector("header"), {
offset: 100
});
header.init();
100 означает, что скрытие/появление шапки
начнется только после прокрутки на 100 пикселей вниз.offset помогает избежать ложных
срабатываний на коротких страницах или при небольшом
скролле.onPin и onUnpinДля точной настройки реакции скролла можно использовать колбэки:
var header = new Headroom(document.querySelector("header"), {
tolerance: 10,
onPin: function() {
console.log("Заголовок показан");
},
onUnpin: function() {
console.log("Заголовок скрыт");
}
});
header.init();
onPin вызывается, когда заголовок становится
видимым после скролла вверх.onUnpin срабатывает, когда заголовок скрывается
при скролле вниз.tolerance эти функции позволяют
точно контролировать моменты срабатывания.На мобильных устройствах скролл часто имеет короткие резкие импульсы, поэтому рекомендуется:
tolerance.down на 5–10 пикселей для
предотвращения дерганий.offset, чтобы заголовок не реагировал на
небольшие прокрутки пальцем.debounce или CSS-переходы для более
плавного эффекта:.headroom {
transition: transform 0.3s ease-in-out;
}
var header = new Headroom(document.querySelector("header"), {
tolerance: { up: 15, down: 20 },
offset: 150
});
header.init();
var header = new Headroom(document.querySelector("header"), {
tolerance: { up: 5, down: 5 },
offset: 50
});
header.init();
tolerance и offset работают вместе:
слишком маленький offset с высокой чувствительностью может
вызвать постоянное скрытие/появление.Настройка чувствительности скролла в Headroom.js строится на комбинации tolerance, offset и колбэков. Грамотная конфигурация этих параметров обеспечивает естественное и плавное поведение заголовка на любых устройствах, предотвращает дергания и ложные срабатывания.