Класс headroom--unpinned в библиотеке
Headroom.js используется для управления поведением
шапки сайта при прокрутке страницы. Он автоматически добавляется к
элементу шапки, когда пользователь прокручивает страницу
вниз, и шапка скрывается. Основная задача этого класса
— позволить интерфейсу быть более компактным и не занимать место, когда
контент важнее всего.
Headroom.js отслеживает направление прокрутки страницы с помощью
события scroll. При каждом изменении положения страницы
вычисляется:
Если направление вниз и элемент шапки находится в видимой зоне, Headroom.js:
headroom--unpinned;headroom--pinned (если он был
ранее).Это позволяет браузеру с помощью CSS скрывать шапку плавно, используя анимации, переходы и трансформации.
headroom--unpinned.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
transition: transform 0.3s ease-in-out;
z-index: 1000;
}
.header.headroom--unpinned {
transform: translateY(-100%);
}
.header.headroom--pinned {
transform: translateY(0);
}
В этом примере:
.header.headroom--unpinned — скрывает шапку, сдвигая её
вверх за пределы видимой области;.header.headroom--pinned — возвращает шапку в исходное
положение;transition обеспечивает плавную анимацию движения.Headroom.js позволяет управлять моментом, когда шапка начинает скрываться. Основные параметры:
var header = document.querySelector(".header");
var headroom = new Headroom(header, {
tolerance: {
up: 10,
down: 5
},
offset: 50,
classes: {
pinned: "headroom--pinned",
unpinned: "headroom--unpinned",
top: "headroom--top",
notTop: "headroom--not-top",
bottom: "headroom--bottom",
notBottom: "headroom--not-bottom"
}
});
headroom.init();
Использование этих параметров позволяет точно настроить, через сколько пикселей прокрутки шапка будет скрываться и возвращаться.
Плавная прокрутка вниз При медленном движении
вниз шапка получает класс headroom--unpinned, скрывается и
освобождает пространство для контента.
Резкая прокрутка вверх Если пользователь
прокручивает страницу вверх, класс headroom--pinned снова
добавляется, и шапка возвращается на экран.
На верхней границе страницы Если шапка находится
в начале страницы, может применяться класс headroom--top,
что позволяет задать отдельные стили для фиксированной позиции.
На нижней границе страницы Если страница
прокручена до низа, можно использовать класс
headroom--bottom для дополнительной логики, например,
оставлять шапку открытой для важных действий.
При использовании AJAX или динамического изменения контента важно:
headroom.update() после изменения высоты шапки
или появления новых элементов в шапке;headroom--unpinned и
headroom--pinned, чтобы шапка всегда оставалась
синхронизированной с текущей прокруткой.Пример:
// После загрузки динамического контента
headroom.update();
headroom--unpinnedopacity, transform, filter
позволяет создавать уникальные визуальные эффекты при скрытии
шапки.