Свойство CSS animation-iteration-count
Свойство CSS animation-iteration-count задаёт количество повторений анимации. Смотрите примеры и практикуйтесь.
Свойство CSS animation-iteration-count определяет, сколько раз анимация должна воспроизводиться до остановки. Оно принимает два типа значений: число (например, 1, 3 или 2.5) или ключевое слово infinite. Значение по умолчанию равно 1, то есть по умолчанию анимация воспроизводится ровно один раз.
Именно это свойство превращает однократный переход в зацикленный эффект. Используйте его вместе с animation-name, правилом @keyframes и animation-duration, чтобы управлять и тем, что делает анимация, и тем, как часто она повторяется.
Как интерпретируется значение
infinite— анимация повторяется бесконечно (пока страница не закрыта или свойство не удалено). Это самый распространённый выбор для фоновых эффектов, таких как спиннеры, мигающие значки и движение фона.- Целое число (
2,5, …) — анимация воспроизводится ровно столько полных циклов, затем фиксируется в состоянии, определённом свойством animation-fill-mode (по умолчанию возвращается к неанимированному состоянию). - Дробное число (
0.5,2.5, …) — анимация воспроизводит неполные циклы. Значение0.5запускает анимацию до середины её ключевых кадров и останавливается;2.5проигрывает два полных цикла плюс первую половину третьего. 0— допустимое значение, при котором анимация просто не воспроизводится.- Отрицательные числа являются недопустимыми, и объявление игнорируется.
Взаимодействие с другими свойствами
animation-iteration-count тесно связано со свойством animation-direction. Если количество итераций больше 1 и направление равно alternate, каждый чётный цикл воспроизводится в обратном порядке, что создаёт плавное движение туда-обратно вместо резкого возврата к началу при каждом повторении.
Если указано несколько значений через запятую, они применяются последовательно к анимациям, заданным в animation-name. Если значений меньше, чем анимаций, список повторяется. Если значений больше, лишние игнорируются.
Свойство animation-iteration-count относится к свойствам CSS3 и поддерживается во всех современных браузерах. Его также можно задать в составе сокращённого свойства animation.
| Начальное значение | 1 |
|---|---|
| Применяется к | Всем элементам, псевдоэлементам ::before и ::after. |
| Наследуется | Нет. |
| Анимируется | Нет. |
| Версия | CSS3 |
| DOM Syntax | object.style.animationIterationCount = "infinite"; |
Синтаксис
Синтаксис свойства CSS animation-iteration-count
animation-iteration-count: number | infinite | initial | inherit;Пример свойства animation-iteration-count:
Пример свойства CSS animation-iteration-count с числовым значением
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
html,
body {
margin: 0;
padding: 0;
}
div {
position: relative;
width: 100px;
height: 100px;
margin: 30px 0;
border-radius: 50%;
animation-name: pulse;
}
.element-one {
background-color: #1c87c9;
animation-duration: 3s;
animation-iteration-count: 3;
}
.element-two {
margin: 0;
background-color: #83bf42;
animation-duration: 5s;
animation-iteration-count: 2;
}
@keyframes pulse {
0% {
transform: translateX(0);
}
50% {
transform: translateX(50%);
}
100% {
transform: translateX(0);
}
}
</style>
</head>
<body>
<h2>The animation-iteration-count example</h2>
<p>The animation-iteration-count sets the number of times an animation cycle should be played before stopping.</p>
<div class="element-one"></div>
<div class="element-two"></div>
</body>
</html>Пример свойства animation-iteration-count со значением "infinite":
Пример свойства CSS animation-iteration-count со значением infinite
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
html,
body {
margin: 0;
padding: 0;
}
div {
position: relative;
width: 100px;
height: 100px;
margin: 30px 0;
border-radius: 50%;
animation-name: pulse;
}
.element-one {
background-color: #1c87c9;
animation-duration: 3s;
animation-iteration-count: infinite;
}
.element-two {
margin: 0;
background-color: #83bf42;
animation-duration: 5s;
animation-iteration-count: 2;
}
@keyframes pulse {
0% {
transform: translateX(0);
}
50% {
transform: translateX(50%);
}
100% {
transform: translateX(0);
}
}
</style>
</head>
<body>
<h2>The animation-iteration-count example</h2>
<p>The animation-iteration-count property sets the number of times an animation cycle should be played before stopping.</p>
<div class="element-one"></div>
<div class="element-two"></div>
</body>
</html>Использование animation-iteration-count: infinite — стандартный способ создания индикаторов загрузки. Сочетайте его с трансформацией rotate() внутри @keyframes и значением linear свойства animation-timing-function, чтобы вращение выполнялось с постоянной скоростью без пауз при замедлении.
Значения
| Значение | Описание | Пример |
|---|---|---|
| number | Определяет, сколько раз должна воспроизводиться анимация. Значение по умолчанию — 1. | Play it » |
| infinite | Анимация воспроизводится без остановки. | Play it » |
| initial | Устанавливает свойство в значение по умолчанию. | |
| inherit | Наследует свойство от родительского элемента. |