Для работы с Stickybits необходимо создать экземпляр, связанный с DOM-элементами. Основной синтаксис выглядит следующим образом:
const sticky = stickybits('.selector', {
useStickyClasses: true,
stickyBitStickyOffset: 0,
parentClass: 'sticky-parent',
});
.selector — CSS-селектор элементов,
которым будет применяться «липкость».useStickyClasses — логическое
значение, определяющее, будут ли добавляться CSS-классы
(is-sticky, has-stickybit).stickyBitStickyOffset — смещение от
верха страницы, после которого элемент становится «липким».parentClass — класс, добавляемый
родительскому элементу, если используется позиционирование sticky внутри
контейнера.Экземпляр, возвращаемый функцией stickybits,
предоставляет набор методов для управления поведением элементов.
.update()Метод .update() пересчитывает позиции и
размеры «липких» элементов. Это особенно важно при динамическом
изменении контента или размеров окна.
sticky.update();
Особенности:
Пример использования при изменении DOM:
const container = document.querySelector('.container');
container.innerHTML += '<div class="sticky-item">Новый элемент</div>';
sticky.update();
.disable()Метод .disable() полностью отключает
работу Stickybits для текущего экземпляра.
sticky.disable();
Особенности:
.enable().Пример:
sticky.disable(); // Элементы больше не «прилипают» при скролле
.enable()Метод .enable() восстанавливает работу
Stickybits после отключения.
sticky.enable();
Особенности:
Пример:
sticky.disable();
setTimeout(() => {
sticky.enable(); // Повторная активация через 2 секунды
}, 2000);
.destroy()Метод .destroy() полностью удаляет
экземпляр Stickybits и очищает все связанные с ним изменения.
sticky.destroy();
Особенности:
destroy() экземпляр больше нельзя
использовать без повторного вызова stickybits().Пример:
sticky.destroy();
.addInstance()Метод .addInstance() позволяет
динамически добавить новые элементы в управление Stickybits после
создания экземпляра.
sticky.addInstance(document.querySelector('.new-sticky'));
Особенности:
update() для новых элементов.Пример:
const newItem = document.createElement('div');
newItem.classList.add('sticky-item');
document.body.appendChild(newItem);
sticky.addInstance(newItem);
.removeInstance()Метод .removeInstance() удаляет один
элемент из управления Stickybits без полного разрушения экземпляра.
sticky.removeInstance(document.querySelector('.sticky-item'));
Особенности:
Пример:
const elementToRemove = document.querySelector('.sticky-item');
sticky.removeInstance(elementToRemove);
| Метод | Описание |
|---|---|
update() |
Пересчитывает позиции и размеры элементов. |
disable() |
Отключает «липкость», оставляет экземпляр активным. |
enable() |
Включает «липкость» после отключения. |
destroy() |
Полностью удаляет экземпляр и очистку элементов. |
addInstance(element) |
Добавляет новый элемент в управление Stickybits. |
removeInstance(element) |
Удаляет отдельный элемент из управления Stickybits. |
Эти методы обеспечивают гибкое управление поведением «липких» элементов, позволяют динамически обновлять контент и контролировать состояние элементов без необходимости пересоздавать экземпляры библиотеки.