Библиотека Isotope предоставляет гибкие возможности для управления
анимацией при фильтрации, сортировке и изменении размеров элементов
сетки. Настройка анимации осуществляется через объект
animationOptions, который позволяет
детально контролировать продолжительность, тип easing и задержки
анимационных эффектов.
animationOptionsduration Задает длительность анимации в миллисекундах.
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows',
animationOptions: {
duration: 800
}
});
В этом примере все анимации будут выполняться в течение 800 мс.
Значение может быть любым положительным числом, включая дробные
значения, например 0.5 для половины миллисекунды, хотя
обычно используют целые числа.
easing Определяет функцию ускорения анимации. Isotope поддерживает стандартные CSS функции easing, а также jQuery easing, если подключен соответствующий плагин.
animationOptions: {
duration: 600,
easing: 'ease-in-out'
}
Популярные варианты: linear, ease,
ease-in, ease-out, ease-in-out, а
для jQuery можно использовать swing,
easeInQuad, easeOutBounce и другие.
queue Логическое значение, указывающее, будет ли анимация ставиться в очередь.
animationOptions: {
duration: 500,
queue: false
}
Если queue установлено в false, все
элементы начинают анимацию одновременно. При значении true
анимации элементов выполняются последовательно.
При изменении фильтрации или сортировки сетки Isotope применяет
анимацию к элементам, которые появляются, исчезают или меняют положение.
Настройка параметров animationOptions влияет на весь
процесс:
$grid.isotope({
filter: '.category-a',
animationOptions: {
duration: 700,
easing: 'ease-out',
queue: false
}
});
В данном примере фильтрация .category-a будет
происходить за 700 мс с функцией ускорения ease-out, без
последовательной очереди.
Isotope позволяет задавать разные анимации для отдельных
элементов, используя CSS-переходы или динамическое изменение
transition-duration через JavaScript.
$('.grid-item').each(function(i) {
var delay = i * 50; // задержка по 50 мс для каждого элемента
$(this).css({
transitionDuration: (0.5 + i*0.1) + 's'
});
});
Такой подход позволяет создавать эффект “волны” или последовательного появления элементов при фильтрации.
stagger Свойство stagger задает
интервал задержки между анимациями элементов. Поддерживается начиная с
версии Isotope, использующей transitionDuration для
CSS-переходов.
hiddenStyle и visibleStyle Используются для определения конечных стилей элементов при их скрытии и отображении. Например:
$grid.isotope({
hiddenStyle: { opacity: 0, transform: 'scale(0.5)' },
visibleStyle: { opacity: 1, transform: 'scale(1)' },
animationOptions: { duration: 600, easing: 'ease-in-out' }
});
Это позволяет не только менять прозрачность, но и масштаб, вращение или смещение элементов во время анимации.
percentPosition В сочетании с анимацией влияет
на корректное позиционирование элементов, особенно при адаптивной сетке.
Установка percentPosition: true обеспечивает плавное
масштабирование элементов при изменении размера контейнера.
Комбинация фильтрации и задержки:
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'masonry',
hiddenStyle: { opacity: 0, transform: 'scale(0.3)' },
visibleStyle: { opacity: 1, transform: 'scale(1)' },
transitionDuration: '0.7s'
});
$('.filter-button').on('click', function() {
var filterValue = $(this).attr('data-filter');
$grid.isotope({
filter: filterValue,
stagger: 100
});
});
В этом примере элементы появляются с постепенным увеличением масштаба и задержкой 100 мс между соседними элементами.
Анимация сортировки с различными easing:
$grid.isotope({
sortBy: 'name',
animationOptions: {
duration: 1000,
easing: 'ease-out'
}
});
Сортировка по имени будет происходить плавно в течение 1 секунды с эффектом замедления к концу анимации.
Понимание и грамотная настройка параметров анимации в Isotope позволяет создавать динамичные, визуально привлекательные интерфейсы, где фильтрация и сортировка элементов происходят естественно и органично. Контроль над duration, easing, queue, hiddenStyle, visibleStyle и stagger дает полный спектр возможностей для тонкой настройки поведения сетки.