PassFront
  1. PassFront
  2. База знаний
  3. Анимации и переходы

Какие есть способы анимировать CSS свойства?

Анимации и переходы

Анимировать CSS-свойства можно тремя основными способами: transition, @keyframes и Web Animations API.

transition

Плавный переход между двумя состояниями при изменении свойства:

.button { transition: transform 200ms ease, background-color 200ms; }
.button:hover { transform: translateY(-2px); background-color: #0055ff; }

@keyframes + animation

Анимация с несколькими шагами, повторами и без триггера:

@keyframes pulse {
  50% { transform: scale(1.1); }
}
.badge { animation: pulse 1s ease-in-out infinite; }

Web Animations API

Управление анимацией из JavaScript — пауза, отмена, промисы:

element.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 300 });

Производительность

Дешевле всего анимировать transform и opacity — их обрабатывает композитор без перерасчёта раскладки. Пользователям с prefers-reduced-motion: reduce анимации лучше отключать.

Коротко для собеседования

transition — между двумя состояниями, keyframes — сложные и повторяющиеся анимации, WAAPI — управление из JS; анимируют предпочтительно transform и opacity.

Подробнее: MDN — CSS-анимации

Другие вопросы раздела