Angular позволяет не только анимировать отдельные элементы, но и группировать несколько анимаций или запускать их последовательно, управляя временем их начала и завершения.
Групповые анимации выполняются одновременно. Используется функция
group(), которая позволяет запускать несколько анимационных
блоков параллельно. Это полезно для синхронизации изменений нескольких
свойств элемента или нескольких элементов интерфейса.
import { group, animate, style, transition, trigger } from '@angular/animations';
trigger('moveAndFade', [
transition(':enter', [
group([
animate('500ms ease-out', style({ opacity: 1 })),
animate('700ms ease-in', style({ transform: 'translateX(100px)' }))
])
])
])
В этом примере одновременно изменяются непрозрачность и позиция элемента, создавая комплексный эффект.
Последовательные анимации выполняются одна за другой с использованием
функции sequence(). Это позволяет создавать сложные
сценарии, где одно действие логически и визуально следует за другим.
import { sequence, animate, style, transition, trigger } from '@angular/animations';
trigger('stepAnimation', [
transition(':enter', [
sequence([
animate('300ms', style({ opacity: 1 })),
animate('400ms', style({ transform: 'translateY(20px)' })),
animate('200ms', style({ transform: 'translateY(0)' }))
])
])
])
Элементы постепенно проявляются, двигаются и возвращаются в исходное положение, создавая эффект пошагового появления.
Angular позволяет сочетать group() и sequence() для сложных анимаций. Например, можно запустить параллельно несколько анимаций на одном элементе и затем последовательно анимировать другой элемент:
transition(':enter', [
sequence([
group([
animate('300ms', style({ opacity: 1 })),
animate('300ms', style({ transform: 'scale(1.1)' }))
]),
animate('200ms', style({ transform: 'scale(1)' }))
])
])
Такой подход позволяет создавать динамичные и насыщенные анимации, которые управляют как временной функцией, так и порядком визуальных изменений. Angular обеспечивает гибкость в управлении всеми аспектами анимаций, включая синхронизацию, задержку и кривые ускорения.