Метод cleanup является ключевым инструментом для
управления поведением элементов, закреплённых с помощью библиотеки
Stickybits. Он позволяет корректно удалить все эффекты
sticky-позиционирования и восстановить исходное состояние элементов на
странице. Этот метод особенно полезен при динамическом изменении
контента, изменении размеров окна или удалении элементов из DOM.
stickyInstance.cleanup();
stickyInstance — объект, возвращённый вызовом
stickybits() на элементе или наборе элементов.Метод не принимает аргументов и применяется напрямую к экземпляру Stickybits.
При вызове cleanup выполняется последовательность
действий:
Удаление inline-стилей Stickybits добавляет
элементам и их контейнерам определённые inline-стили
(position, top, width,
left). Метод cleanup сбрасывает все эти
свойства, возвращая элементы к их исходному CSS-состоянию.
Удаление классов Для управления состояниями элементов Stickybits использует CSS-классы:
.js-is-sticky — активное состояние закреплённого
элемента.js-is-stuck — элемент достиг нижней границы
контейнера.js-is-top — элемент находится в исходной позицииМетод cleanup удаляет все эти классы, чтобы DOM не
содержал лишних индикаторов состояния.
Удаление слушателей событий Stickybits
устанавливает слушатели scroll и resize, чтобы
динамически изменять положение элементов. cleanup полностью
снимает эти обработчики, предотвращая лишние вычисления и утечки
памяти.
// Инициализация sticky элементов
const stickyInstance = stickybits('.sticky-element', {
stickyBitStickyOffset: 20,
useStickyClasses: true
});
// Позднее, когда элемент нужно вернуть в исходное состояние
stickyInstance.cleanup();
В этом примере после вызова cleanup элемент
.sticky-element перестанет реагировать на прокрутку и
вернётся в исходное положение без дополнительных стилей и классов.
Множественные элементы Если Stickybits
инициализирован на наборе элементов, cleanup корректно
обработает каждый элемент индивидуально, удаляя стили и классы.
Повторная инициализация После вызова
cleanup можно снова вызвать stickybits() на
том же элементе, чтобы повторно активировать sticky-функциональность.
Это удобно при динамическом контенте или SPA-приложениях.
Совместимость с другими библиотеками Метод
cleanup безопасен для использования вместе с фреймворками
типа React или Vue, так как корректно убирает все слушатели и стили,
предотвращая конфликты с системой виртуального DOM.
const elements = stickybits('.dynamic-sticky');
elements.forEach(el => el.cleanup());
При изменении высоты контейнера можно вызвать cleanup,
затем повторно инициализировать sticky, чтобы пересчитать положение:
stickyInstance.cleanup();
stickybits('.sticky-element');
Удаление ненужных sticky-элементов с помощью cleanup
снижает нагрузку на обработчики событий scroll и
resize, что важно при больших страницах с множеством
фиксированных блоков.
Метод cleanup обеспечивает полное и безопасное удаление
функционала Stickybits, делая управление sticky-элементами гибким и
предсказуемым. Его использование — стандартная практика при динамическом
управлении интерфейсом.