Класс headroom--bottom является одним из ключевых
CSS-классов, используемых библиотекой Headroom.js для
управления поведением элементов при прокрутке страницы. Его основное
назначение — индикация того, что пользователь достиг нижней границы
документа или контейнера, на котором применяется Headroom.
Headroom.js отслеживает положение элемента относительно окна
просмотра (viewport) и прокрутки страницы
(scroll). В момент, когда элемент достигает нижней границы,
библиотека автоматически добавляет к элементу класс
headroom--bottom. Это позволяет применять специфические
стили или поведение в CSS и JavaScript для элемента в состоянии “нижнего
предела”.
var myElement = document.querySelector(".header");
var headroom = new Headroom(myElement, {
offset: 10, // расстояние до верха, при котором срабатывает скрытие/появление
tolerance: 5, // чувствительность к прокрутке
classes: {
initial: "headroom",
pinned: "headroom--pinned",
unpinned: "headroom--unpinned",
top: "headroom--top",
notTop: "headroom--not-top",
bottom: "headroom--bottom",
notBottom: "headroom--not-bottom"
}
});
headroom.init();
В этом примере объект Headroom создается для элемента
.header. При достижении нижней границы документа к элементу
будет добавляться класс headroom--bottom, а при отдалении
от нижнего края — headroom--not-bottom.
Класс headroom--bottom используется для изменения
внешнего вида или поведения элементов в момент достижения нижней
границы. Например:
.header.headroom--bottom {
position: absolute;
bottom: 0;
background-color: rgba(0, 0, 0, 0.85);
transition: background-color 0.3s ease;
}
.header.headroom--not-bottom {
background-color: rgba(0, 0, 0, 0.5);
}
В данном примере цвет фона заголовка изменяется в зависимости от положения: при достижении нижней границы становится более насыщенным.
Класс headroom--bottom работает совместно с другими
классами:
headroom--pinned — элемент закреплен и видим.headroom--unpinned — элемент скрыт при прокрутке
вниз.headroom--top — элемент находится у верхней
границы.headroom--not-top — элемент не у верхней границы.Важно учитывать, что состояние headroom--bottom может
пересекаться с состояниями pinned и unpinned.
Например, элемент может быть одновременно закреплен
(pinned) и достигать нижнего края
(bottom).
При инициализации Headroom можно задавать смещение
(offset) и чувствительность (tolerance), чтобы
контролировать момент добавления класса
headroom--bottom:
var headroom = new Headroom(myElement, {
offset: 50, // добавление класса происходит за 50px до нижней границы
tolerance: {
up: 10, // прокрутка вверх: добавление pinned/unpinned
down: 5 // прокрутка вниз: добавление pinned/unpinned
}
});
С помощью этих настроек можно добиться плавного взаимодействия с другими эффектами на странице, например, с динамически изменяемым контентом или параллакс-эффектами.
Наиболее частое применение headroom--bottom — создание
«липких» футеров, которые фиксируются внизу страницы, когда пользователь
приближается к концу контента:
.footer {
position: fixed;
width: 100%;
bottom: -100px; /* скрыт за пределами экрана */
transition: bottom 0.3s ease;
}
.footer.headroom--bottom {
bottom: 0; /* плавно появляется при достижении низа страницы */
}
Такой подход позволяет сочетать поведение футера с эффектом скрытия/появления при прокрутке основного контента, создавая эффект динамической навигации.
headroom--bottom идеально подходит для изменения
позиционирования, прозрачности, цвета и других визуальных эффектов при
достижении низа страницы.Класс headroom--bottom является универсальным
инструментом для управления поведением элементов внизу страницы и
позволяет создавать динамические, интерактивные интерфейсы с
минимальными затратами кода.