Метод animate() является мощным инструментом для
создания анимаций элементов на странице с помощью CSS-свойств и
переходов. Он предоставляет гибкий способ управления анимациями без
необходимости подключать сторонние библиотеки, используя возможности
нативного CSS через синтаксис JavaScript.
$(selector).animate(properties, speed, easing, callback);
Параметры:
properties — объект с CSS-свойствами, которые
необходимо анимировать. Значения могут быть как числами, так и строками
с единицами измерения (px, %, em
и др.).speed — длительность анимации в миллисекундах (число)
или строковое значение ('fast', 'slow').easing — функция сглаживания анимации
('linear', 'ease-in', 'ease-out',
'ease-in-out') или произвольная функция.callback — функция, вызываемая после завершения
анимации.$('.box').animate({ width: '300px', height: '200px' }, 500);
Этот код плавно изменяет ширину и высоту элемента с классом
box за 500 миллисекунд.
$('.box').animate({ opacity: 0 }, 1000, 'ease-in-out');
Изменяет прозрачность элемента, используя плавное ускорение и замедление.
$('.box').animate({ left: '100px' }, 700, 'linear', function() {
console.log('Анимация завершена');
});
Функция callback выполняется сразу после завершения
анимации.
animate()px, %, em,
но не поддерживает анимацию свойств, которые не имеют числового
представления (display, position).animate() последовательно или внутри
callback предыдущей.$('.box')
.animate({ width: '200px' }, 400)
.animate({ height: '150px' }, 400);
translate, rotate, scale можно
анимировать через объект CSS transform.$('.box').animate({ transform: 'translateX(100px) rotate(45deg)' }, 800);
requestAnimationFrame через Dom7, если требуется высокая
производительность.width, height, top,
left), чтобы не перегружать перерисовку страницы.
Предпочтительнее анимировать transform и
opacity.$('.box').animate({ width: '300px' }, 500, 'ease-in', function() {
$(this).animate({ height: '200px', opacity: 0.5 }, 500, 'ease-out');
});
$$('.box').each(function(el, index) {
$(el).animate({ left: 50 * index + 'px', opacity: 1 }, 600);
});
$('.box').animate({ transform: 'translate3d(100px, 0, 0) scale(1.2)' }, 700, 'ease-in-out');
display, visibility).transitionend внутри Dom7 обрабатываются
корректно, но при сложных трансформациях рекомендуется контролировать
завершение через callback.Метод animate() Dom7 сочетает в себе простоту
использования с высокой гибкостью. Он позволяет создавать как базовые,
так и сложные анимации, сохраняя контроль над временем, функцией
сглаживания и последовательностью действий. Использование
animate() вместе с transform и
opacity обеспечивает оптимальную производительность для
современных веб-интерфейсов.