Библиотека Stickybits предоставляет лёгкий способ сделать элементы
веб-страницы «липкими» при прокрутке. Для работы с элементом
используется метод stickybits(). Его базовая форма выглядит
так:
const sticky = stickybits('.selector', {
stickyBitStickyOffset: 0,
useStickyClasses: true,
useFixed: false
});
.selector – CSS-селектор элемента,
который нужно сделать липким.stickyBitStickyOffset – смещение от
верха страницы в пикселях, после которого элемент становится
липким.useStickyClasses – добавление
CSS-классов для управления состояниями элемента (is-sticky,
is-stuck).useFixed – если true,
используется фиксированное позиционирование вместо CSS
position: sticky.Метод возвращает объект с набором методов, позволяющих управлять элементом динамически.
update()Обновляет внутренние вычисления Stickybits, пересчитывает положение элемента. Полезно при изменении контента страницы или размеров элементов.
sticky.update();
Особенности:
cleanup()Удаляет все стили и классы, добавленные Stickybits, возвращая элемент к исходному состоянию.
sticky.cleanup();
Особенности:
position: sticky или
position: fixed, применённые через библиотеку.is-sticky и
is-stuck.stickyClass()Добавляет CSS-классы при прилипания элемента. Этот метод вызывается
автоматически при инициализации, если включен
useStickyClasses.
Пример использования:
sticky.stickyClass();
Классы:
is-sticky – элемент прилип к верхней границе.is-stuck – элемент достиг конца родителя и перестал
прилипать.Можно переопределять поведение через собственные CSS.
positionSticky()Устанавливает элементу position: sticky с
соответствующим смещением.
sticky.positionSticky();
Особенности:
useFixed: false.top, равное
stickyBitStickyOffset.positionFixed()Используется, когда элемент должен «прилипать» с помощью
position: fixed.
sticky.positionFixed();
Особенности:
useFixed: true.update() для корректного положения
при динамическом изменении страницы.setStickyPosition(value)Позволяет динамически изменять позицию прилипания в пикселях.
sticky.setStickyPosition(50);
value – число пикселей от верхнего края окна.cleanup() или повторной инициализации.addStateClass(element, state)Позволяет вручную управлять CSS-классами состояния элемента.
sticky.addStateClass(myElement, 'is-stuck');
element – DOM-элемент, к которому применяется
класс.state – имя класса (is-sticky или
is-stuck).removeStateClass(element, state)Удаляет заданный класс состояния с элемента.
sticky.removeStateClass(myElement, 'is-sticky');
addStateClass, но выполняет обратное
действие.getState()Возвращает текущий статус прилипания элемента:
const state = sticky.getState();
console.log(state); // 'default', 'is-sticky', 'is-stuck'
default – элемент не прилип.is-sticky – элемент прилип к верху.is-stuck – элемент достиг конца родителя.Stickybits поддерживает массив селекторов и NodeList:
const stickyMultiple = stickybits('.sticky-element');
stickyMultiple.forEach(sticky => {
sticky.update();
});
При добавлении или удалении элементов страницы можно:
update() для пересчёта размеров.cleanup() для удаления предыдущих стилей
перед повторной инициализацией.setStickyPosition() для адаптивного
смещения.Эти методы обеспечивают стабильное поведение Stickybits даже в динамическом контенте.