Свойство 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
AnimationEventJavaScript - Другие связанные свойства анимации:
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