Stickybits — это лёгкая JavaScript-библиотека для создания «липких»
элементов на странице, которые фиксируются при прокрутке. Инициализация
библиотеки начинается с подключения скрипта и вызова функции
stickybits с нужными параметрами.
Stickybits может быть подключён как через CDN, так и через пакетный менеджер npm.
Через CDN:
<script src="https://cdn.jsdelivr.net/npm/stickybits@3.7.8/dist/stickybits.min.js"></script>
Через npm:
npm install stickybits
После установки через npm библиотека импортируется:
import stickybits from 'stickybits';
Для создания «липкого» элемента достаточно вызвать функцию
stickybits и передать в неё селектор:
stickybits('.my-sticky-element');
В этом случае элементы с классом .my-sticky-element
автоматически станут «липкими» при прокрутке.
Stickybits позволяет детально настроить поведение элементов через объект опций, передаваемый вторым аргументом:
stickybits('.my-sticky-element', {
stickyBitStickyOffset: 20,
useStickyClasses: true,
verticalPosition: 'top'
});
true,
библиотека добавляет CSS-классы (.js-is-sticky,
.js-is-stuck) для управления стилями через CSS.'top' или 'bottom'.Stickybits может быть применён к группе элементов через общий селектор. Все элементы станут независимыми «липкими» блоками.
stickybits('.sticky-item', {
stickyBitStickyOffset: 10,
useStickyClasses: true
});
В этом случае библиотека создаст отдельные управляющие объекты для каждого элемента.
Возвращаемое значение функции stickybits — массив
объектов для каждого элемента. Это позволяет программно управлять
состоянием элементов.
const stickies = stickybits('.my-sticky-element');
stickies.forEach(sticky => {
// Принудительно удалить "липкость"
sticky.cleanup();
});
Методы:
position: sticky, Stickybits автоматически
использует абсолютное позиционирование с пересчётом координат.useStickyClasses
упрощает применение анимаций и стилей в момент активации
«липкости».Можно инициализировать Stickybits для элементов, которые появятся динамически, используя делегирование через Jav * aScript:
document.addEventListener('DOMContentLoaded', () => {
stickybits('.dynamic-sticky', { stickyBitStickyOffset: 15 });
});
Это гарантирует корректную работу «липких» элементов даже при асинхронной загрузке контента.
.sticky-item, особенно в больших списках.update() только после значительных изменений
DOM, чтобы избежать лишней нагрузки.Инициализация Stickybits — это не просто подключение скрипта, а гибкая настройка поведения «липких» элементов с помощью параметров и методов управления, что делает библиотеку универсальным инструментом для создания интерактивных интерфейсов с фиксированными блоками.