Библиотека Isotope предоставляет гибкую систему для управления анимацией при фильтрации, сортировке и перестроении сетки элементов. Иногда возникает необходимость полностью отключить анимацию, чтобы изменения происходили мгновенно, без плавного перемещения или появления элементов. Это особенно актуально при работе с большими массивами данных или при необходимости мгновенного обновления интерфейса.
transitionDurationДля управления анимацией в Isotope используется параметр
transitionDuration, который задаёт
длительность анимации в миллисекундах или строкой с CSS-значением
времени ('0.4s', '400ms'). Для отключения
анимации следует установить его в 0 или
'0s'.
Пример инициализации сетки без анимации:
var grid = new Isotope('.grid', {
itemSelector: '.grid-item',
layoutMode: 'masonry',
transitionDuration: 0
});
В этом случае любые операции, такие как фильтрация или сортировка, будут выполняться мгновенно, без плавных перемещений элементов.
arrangeМетод arrange позволяет обновлять
состояние сетки динамически, включая фильтры и сортировку. Для
отключения анимации при конкретном вызове можно передавать
transitionDuration в опциях:
grid.arrange({
filter: '.category-a',
transitionDuration: 0
});
Это полезно, когда требуется мгновенно отобразить изменения только в одном действии, сохранив при этом анимацию по умолчанию для остальных операций.
Помимо параметра transitionDuration, Isotope использует
CSS-транзишны для анимации позиции и размера элементов. Если требуется
полностью отключить любую анимацию на уровне стилей, можно задать
transition: none для элементов сетки:
.grid-item {
transition: none !important;
}
Этот метод гарантирует, что любые изменения, включая позиционирование и масштабирование элементов, будут применяться мгновенно, независимо от настроек Isotope.
shuffle и layoutМетоды shuffle (перемешивание
элементов) и layout (перестройка сетки)
также учитывают параметр transitionDuration. Применение
transitionDuration: 0 к этим методам позволяет полностью
исключить анимацию:
grid.shuffle({ transitionDuration: 0 });
grid.layout({ transitionDuration: 0 });
Это особенно важно при динамическом добавлении большого числа элементов, когда анимация может замедлять работу интерфейса.
При добавлении элементов через метод
appended или
insert параметр
transitionDuration также контролирует анимацию
появления:
var newItems = document.querySelectorAll('.new-item');
grid.appended(newItems, { transitionDuration: 0 });
Элементы будут сразу интегрированы в сетку без плавного появления. Для массового добавления элементов это ускоряет рендеринг и уменьшает нагрузку на браузер.
transitionDuration: 0 при работе с
большими сетками или при высокой частоте обновлений.arrange.transitionDuration: 0 с CSS transition: none,
чтобы исключить любые побочные эффекты.Такая настройка позволяет точно управлять производительностью сетки, минимизируя задержки и обеспечивая мгновенное отображение изменений.