В библиотеке Muuri анимации играют ключевую роль в создании плавных и отзывчивых сеток элементов. Основной параметр, влияющий на скорость анимации, — это duration. Он определяет, сколько времени будет длиться переход от одного состояния сетки к другому, например, при перемещении элементов, фильтрации или сортировке.
const grid = new Muuri('.grid', {
layoutDuration: 400, // длительность в миллисекундах
});
Важно учитывать, что слишком короткая длительность может визуально «разрывать» переходы, а слишком длинная — замедлять интерфейс, особенно на больших сетках с множеством элементов.
Параметр layoutEasing управляет кривой анимации,
определяя, как изменяется скорость движения элементов во времени. В CSS
это аналог функции transition-timing-function. Muuri
поддерживает строки с CSS-подобными easing-функциями:
const grid = new Muuri('.grid', {
layoutDuration: 500,
layoutEasing: 'ease-in-out'
});
Популярные значения:
layoutEasing: 'cubic-bezier(0.25, 0.1, 0.25, 1)'
Кривые easing особенно важны при сложных переходах сетки, где элементы меняют позиции не только линейно, но и по сложной траектории, чтобы движение выглядело органично.
Эффект анимации определяется совместным использованием duration и easing. Например:
const grid = new Muuri('.grid', {
layoutDuration: 700,
layoutEasing: 'ease-in-out'
});
ease-in-out создаёт ощущение
«плавного скольжения» элементов.linear подходит для быстрых
интерфейсов, где важна скорость реакции.Эта комбинация особенно актуальна при работе с интерактивными сетками, где элементы перемещаются пользователем или динамически подстраиваются под размер контейнера.
Muuri позволяет задавать отдельные параметры анимации для
сортировки и фильтрации через sortData и методы
filter. Можно использовать собственные значения duration и
easing:
grid.filter('.active', {
layoutDuration: 600,
layoutEasing: 'ease-out'
});
Muuri предоставляет методы для изменения duration и easing на лету, что удобно при интерактивных событиях:
grid.layout(true, {
duration: 300,
easing: 'ease-in'
});
true заставляет библиотеку пересчитать
позиции элементов немедленно.Это особенно полезно при адаптивных интерфейсах, где на мобильных устройствах или при быстром изменении контента нужны другие скорости анимации.
ease-in-out или ease для
плавности.Настройка duration и easing позволяет Muuri не просто перемещать элементы, а создавать живые, отзывчивые сетки с приятной визуальной динамикой.