В библиотеке Isotope анимация играет ключевую роль в визуальном отображении изменений элементов сетки, таких как фильтрация, сортировка или перестановка. Контроль над длительностью анимации позволяет добиться более плавного и профессионального визуального эффекта, а также улучшает восприятие интерфейса пользователем.
transitionDurationДля настройки длительности анимации в Isotope используется параметр
transitionDuration. Он определяет, сколько
времени будет занимать переход элементов из одного состояния в другое
при фильтрации или сортировке. Значение можно задавать в
миллисекундах или в виде строки с единицей времени CSS
('0.8s', '400ms').
Пример инициализации Isotope с указанием длительности анимации:
var iso = new Isotope('.grid', {
itemSelector: '.grid-item',
layoutMode: 'masonry',
transitionDuration: '0.6s'
});
В этом примере все анимации для перестановки элементов будут занимать 0.6 секунды.
Важно понимать, что transitionDuration работает только
для анимации позиционирования и изменения размеров элементов. Если в CSS
задано собственное свойство transition для элементов, оно
будет сочетаться с настройкой Isotope, но приоритет отдаётся параметру
Isotope.
Можно использовать числовое значение в миллисекундах для более точного контроля:
var iso = new Isotope('.grid', {
itemSelector: '.grid-item',
layoutMode: 'fitRows',
transitionDuration: 400 // 400 миллисекунд
});
В этом случае анимация будет длиться ровно 0.4 секунды.
Числовой формат удобен для динамических вычислений, например, если требуется менять длительность анимации в зависимости от количества элементов в сетке:
var itemsCount = document.querySelectorAll('.grid-item').length;
var duration = Math.min(itemsCount * 50, 1000); // максимум 1 секунда
var iso = new Isotope('.grid', {
itemSelector: '.grid-item',
layoutMode: 'masonry',
transitionDuration: duration
});
Иногда необходимо изменить длительность анимации уже после
инициализации Isotope. Для этого используется метод
option:
iso.options.transitionDuration = '1s';
iso.arrange({ filter: '.active' });
После этого все последующие перестановки элементов будут выполняться с новой длительностью.
Фильтрация При фильтрации элементов новые
элементы появляются с анимацией, а скрытые элементы исчезают.
Длительность анимации управляется только через
transitionDuration.
Сортировка При изменении порядка элементов
Isotope плавно перемещает их на новые позиции. Длительность движения
также определяется transitionDuration.
Совмещение с CSS-переходами Если для
.grid-item заданы CSS-свойства transition на
изменение opacity, transform или размеров, следует учитывать, что
Isotope комбинирует их с transitionDuration. Рекомендуется
задавать transition через Isotope для согласованного
эффекта.
Можно создать разные варианты анимации для фильтрации и сортировки через переопределение параметра перед каждым действием:
// Быстрая фильтрация
iso.options.transitionDuration = '0.3s';
iso.arrange({ filter: '.new' });
// Медленная сортировка
iso.options.transitionDuration = '1s';
iso.arrange({ sortBy: 'name' });
Такой подход позволяет создавать динамичные и адаптивные интерфейсы, где разные действия имеют разную визуальную скорость.
transitionDuration до 1–1.5
секунд.transitionDuration: 0.| Действие | Рекомендуемая длительность |
|---|---|
| Быстрая фильтрация | 200–400 мс |
| Обычная фильтрация/сортировка | 600–800 мс |
| Плавная анимация при демонстрации | 1–1.2 с |
Эти настройки позволяют контролировать визуальную динамику интерфейса и создавать более привлекательный пользовательский опыт при работе с Isotope.