Класс js-is-stuck является ключевым элементом при работе
с библиотекой Stickybits, обеспечивая визуальное и
программное отслеживание состояния закрепленного элемента. Этот класс
автоматически добавляется к DOM-элементу, когда Stickybits фиксирует его
в верхней части окна при прокрутке страницы, и удаляется, когда элемент
возвращается в обычный поток документа.
Использование js-is-stuck позволяет:
При инициализации Stickybits элементу назначается слушатель события
scroll. Библиотека отслеживает позицию элемента
относительно верхнего края окна и его контейнера. Когда элемент
достигает порогового значения (обычно это верхний край окна или заданное
смещение), выполняются следующие действия:
Элементу добавляется класс js-is-stuck.
Если включена опция useStickyClasses, библиотека
добавляет дополнительные классы для состояния:
js-is-stuck — элемент закреплен.js-is-stuck-top — элемент только что начал
закрепляться.js-is-stuck-bottom — элемент достиг нижней границы
контейнера.При прокрутке назад класс автоматически удаляется, если элемент возвращается в исходное положение.
Класс js-is-stuck предназначен для простого и
интуитивного управления стилями. Примеры типичного использования:
.sticky-element {
transition: all 0.3s ease;
}
.sticky-element.js-is-stuck {
background-color: #f5f5f5;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
Важно учитывать:
transition) делают изменение состояния более
плавным.Для динамической логики часто используют слушатели событий или проверку класса через Jav * aScript:
const stickyEl = document.querySelector('.sticky-element');
window.addEventListener('scroll', () => {
if (stickyEl.classList.contains('js-is-stuck')) {
console.log('Элемент закреплен');
} else {
console.log('Элемент свободен');
}
});
Такой подход позволяет:
js-is-stucktrue/false) —
включает добавление классов состояния. Если отключено,
js-is-stuck не будет применяться.js-is-stuck.Пример инициализации с пользовательскими параметрами:
stickybits('.sticky-element', {
useStickyClasses: true,
stickyBitStickyOffset: 10,
stuckClass: 'custom-stuck-class'
});
js-is-stuck всегда обновляется при изменении
позиции элемента, включая ресайз окна.js-is-stuck только тем элементам, которые реально
закреплены.useStickyClasses, если требуется
визуальная обратная связь при закреплении элемента.transition для всех свойств, которые
изменяются при добавлении класса.stuckClass для поддержания читаемости кода и
согласованности CSS.Класс js-is-stuck является центральным механизмом
библиотеки Stickybits, который связывает логику закрепления элемента с
визуальными и функциональными изменениями, обеспечивая удобный и гибкий
способ управления «липкими» элементами на странице.