Spec-Zone.ru › CSS

Свойство CSS `animation-duration`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.

Свойство animation-duration CSS задаёт время, необходимое для завершения одного цикла анимации.

Часто удобно использовать сокращённое свойство animation, чтобы задать все свойства анимации одновременно.

Попробуйте

animation-duration: 750ms;
animation-duration: 3s;
animation-duration: 0s;
<section class="flex-column" id="default-example">
  <div class="animating" id="example-element"></div>
  <button id="play-pause">Play</button>
</section>
#example-element {
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-name: slide;
  animation-play-state: paused;
  animation-timing-function: ease-in;
  background-color: #1766aa;
  border-radius: 50%;
  border: 5px solid #333333;
  color: white;
  height: 150px;
  margin: auto;
  margin-left: 0;
  width: 150px;
}

#example-element.running {
  animation-play-state: running;
}

#play-pause {
  font-size: 2rem;
}

@keyframes slide {
  from {
    background-color: orange;
    color: black;
    margin-left: 0;
  }
  to {
    background-color: orange;
    color: black;
    margin-left: 80%;
  }
}
const el = document.getElementById("example-element");
const button = document.getElementById("play-pause");

button.addEventListener("click", () => {
  if (el.classList.contains("running")) {
    el.classList.remove("running");
    button.textContent = "Play";
  } else {
    el.classList.add("running");
    button.textContent = "Pause";
  }
});

Синтаксис

/* Single animation */
animation-duration: auto; /* Default */
animation-duration: 6s;
animation-duration: 120ms;

/* Multiple animations */
animation-duration: 1.64s, 15.22s;
animation-duration: 10s, 35s, 230ms;

/* Global values */
animation-duration: inherit;
animation-duration: initial;
animation-duration: revert;
animation-duration: revert-layer;
animation-duration: unset;

Значения

Это свойство задаётся списком следующих значений, разделённых запятыми:

auto
Для анимаций, зависящих от времени, auto эквивалентно значению 0s (см. ниже). Для анимаций CSS, управляемых прокруткой auto заполняет анимацией всю временную шкалу.
<time>

Время, необходимое для завершения одного цикла анимации. Его можно задать в секундах (s) или миллисекундах (ms). Значение должно быть положительным или равным нулю, единица измерения обязательна.

Если значение не задано, используется значение по умолчанию 0s; в этом случае анимация всё равно выполняется (срабатывают события animationStart и animationEnd). Будет ли анимация видна при значении длительности 0s, зависит от значения animation-fill-mode, как объясняется ниже:

  • Если для animation-fill-mode задано значение backwards или both, во время обратного отсчёта animation-delay будет отображаться первый кадр анимации, определённый с помощью animation-direction.
  • Если для animation-fill-mode задано значение forwards или both, после истечения animation-delay будет отображаться последний кадр анимации, определённый с помощью animation-direction.
  • Если для animation-fill-mode задано значение none, анимация не будет иметь видимого эффекта.

Примечание: Отрицательные значения недопустимы, поэтому объявление будет проигнорировано. Некоторые ранние реализации с префиксами могут трактовать их как эквивалент 0s.

Примечание: Если для свойства animation-* указать несколько значений, разделённых запятыми, они применяются к анимациям в том порядке, в котором указаны имена animation-name. Подробнее о случаях, когда количество анимаций и значений свойства animation-* не совпадает, см. раздел Задание нескольких значений свойств анимации.

Примечание: При создании анимаций CSS, управляемых прокруткой задавать значение animation-duration в секундах или миллисекундах не имеет особого смысла. В тестах оно, похоже, не влияло на анимации с временной шкалой прогресса прокрутки, а для анимаций с временной шкалой прогресса просмотра, похоже, сдвигало анимацию ближе к концу временной шкалы. Однако Firefox требует задать animation-duration, чтобы анимация успешно применялась. Поэтому рекомендуется установить animation-duration в значение 1ms, чтобы анимации работали в Firefox, но при этом их эффект изменялся не слишком сильно.

Формальное определение

Начальное значение 0s
Применяется к всем элементам, ::before и ::after <a href="/en-US/docs/Web/CSS/Reference/Selectors/Pseudo-elements">псевдоэлементам</a>
Наследуется нет
Вычисленное значение как задано
Тип анимации Не анимируется

Формальный синтаксис

animation-duration = 
  [ auto | <time [0s,∞]> ]#

Примеры

Задание длительности анимации

Длительность этой анимации составляет 0,7 секунды.

HTML

<div class="box"></div>

CSS

.box {
  background-color: rebeccapurple;
  border-radius: 10px;
  width: 100px;
  height: 100px;
}

.box:hover {
  animation-name: rotate;
  animation-duration: 0.7s;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

Результат

Наведите указатель на прямоугольник, чтобы запустить анимацию.

Другие примеры см. в разделе Анимации CSS.

Спецификации

Спецификация
CSS Animations Level 2
# animation-duration

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
animation-duration
43
3
12
12
16
49
5
30
15
12.1–15
12–15
9
4
43
18
16
49
5
30
14
12.1–14
12–14
9
4.2
4.0
1.0
43
2
9
4.2
auto
115
115
предварительная версияFirefox в настоящее время не поддерживает значение auto и принимает только значения в секундах или миллисекундах. Рекомендуется использовать 1ms, пока не будет поддерживаться auto.
101
18.4
115
Нет
77
18.4
23.0
115
18.4

См. также

  • Использование анимаций CSS
  • API AnimationEvent JavaScript
  • Другие связанные свойства анимации: animation, animation-composition, animation-delay, animation-direction, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timeline, animation-timing-function

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation-duration

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API