Свойство CSS `animation-iteration-count`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.
Свойство animation-iteration-count CSS задаёт количество воспроизведений последовательности анимации до её остановки.
Часто удобнее использовать сокращённое свойство animation, чтобы задать все свойства анимации сразу.
Попробуйте
animation-iteration-count: 0;
animation-iteration-count: 2;
animation-iteration-count: 1.5;
<section class="flex-column" id="default-example"> <div>Animation <span id="play-status"></span></div> <div id="example-element">Select a count to start!</div> </section>
#example-element {
align-items: center;
background-color: #1766aa;
border-radius: 50%;
border: 5px solid #333333;
color: white;
display: flex;
flex-direction: column;
height: 150px;
justify-content: center;
margin: auto;
margin-left: 0;
width: 150px;
}
#play-status {
font-weight: bold;
}
.animating {
animation-name: slide;
animation-duration: 3s;
animation-timing-function: ease-in;
}
@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 status = document.getElementById("play-status");
function update() {
status.textContent = "delaying";
el.className = "";
window.requestAnimationFrame(() => {
window.requestAnimationFrame(() => {
el.className = "animating";
});
});
}
el.addEventListener("animationstart", () => {
status.textContent = "playing";
});
el.addEventListener("animationend", () => {
status.textContent = "finished";
});
const observer = new MutationObserver(() => {
update();
});
observer.observe(el, {
attributes: true,
attributeFilter: ["style"],
});
update();
Синтаксис
/* Keyword value */ animation-iteration-count: infinite; /* <number> values */ animation-iteration-count: 3; animation-iteration-count: 2.4; /* Multiple values */ animation-iteration-count: 2, 0, infinite; /* Global values */ animation-iteration-count: inherit; animation-iteration-count: initial; animation-iteration-count: revert; animation-iteration-count: revert-layer; animation-iteration-count: unset;
Значения
Это свойство задаётся одним или несколькими значениями, разделёнными запятыми:
-
infinite - Анимация будет повторяться бесконечно.
-
<number> - Количество повторений анимации; по умолчанию это значение равно
1. Можно указать нецелые значения, чтобы воспроизвести часть цикла анимации: например,0.5воспроизведёт половину цикла анимации. Отрицательные значения недопустимы.
Примечание: Если для свойства animation-* указано несколько значений, разделённых запятыми, они применяются к анимациям в том порядке, в котором появляются значения animation-name. Сведения о ситуациях, когда количество анимаций и значений свойства animation-* не совпадает, см. в разделе Задание нескольких значений свойств анимации.
Примечание: При создании анимаций CSS, управляемых прокруткой, указание animation-iteration-count приводит к повторению анимации заданное количество раз на протяжении временной шкалы. Если animation-iteration-count не задано, анимация будет воспроизведена только один раз. infinite является допустимым значением для анимаций, управляемых прокруткой, но приводит к неработающей анимации.
Формальное определение
| Начальное значение | 1 |
|---|---|
| Применяется к | всем элементам, ::before и ::after <a href="/en-US/docs/Web/CSS/Reference/Selectors/Pseudo-elements">псевдоэлементам</a> |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | Не анимируется |
Формальный синтаксис
animation-iteration-count = <single-animation-iteration-count># <single-animation-iteration-count> = infinite | <number>
Примеры
Задание количества повторений
Эта анимация будет выполнена 10 раз.
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;
animation-iteration-count: 10;
}
@keyframes rotate {
0% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}
Результат
Наведите указатель на прямоугольник, чтобы запустить анимацию.
Примеры см. в разделе Анимации CSS.
Спецификации
| Спецификация |
|---|
| CSS Animations Level 1 # animation-iteration-count |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
animation-iteration-count |
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
3.2
|
4.0
1.0
|
43
4.4
|
9
3.2
|
infinite |
3 |
12 |
5 |
15 |
4 |
18 |
5 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
См. также
- Использование анимаций CSS
- API
AnimationEventJavaScript - Другие связанные свойства анимации:
animation,animation-composition,animation-delay,animation-direction,animation-duration,animation-fill-mode,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-iteration-count