Proprietà CSS animation-iteration-count
La proprietà CSS animation-iteration-count specifica quante volte un'animazione deve essere riprodotta. Esempi e pratica inclusi.
La proprietà CSS animation-iteration-count definisce quante volte un'animazione deve essere riprodotta prima di fermarsi. Accetta due tipi di valori: un numero (come 1, 3 o 2.5) oppure la parola chiave infinite. Il valore predefinito è 1, quindi per impostazione predefinita un'animazione viene eseguita esattamente una volta.
Questa proprietà trasforma una transizione unica in un effetto a ciclo continuo. Combinala con animation-name, la regola @keyframes e animation-duration per controllare sia cosa fa l'animazione sia quante volte si ripete.
Come viene interpretato il valore
infinite— l'animazione si ripete all'infinito (finché la pagina non viene chiusa o la proprietà non viene rimossa). È la scelta più comune per effetti ambientali come spinner, badge pulsanti e movimenti di sfondo.- Un numero intero (
2,5, …) — l'animazione viene riprodotta esattamente per quel numero di cicli completi, poi si blocca nello stato definito da animation-fill-mode (per impostazione predefinita torna allo stato non animato). - Un numero frazionario (
0.5,2.5, …) — l'animazione esegue cicli parziali.0.5esegue l'animazione a metà dei suoi keyframe e si ferma lì;2.5esegue due cicli completi più la prima metà di un terzo. 0— un valore valido, ma l'animazione semplicemente non viene riprodotta.- I numeri negativi sono non validi e la dichiarazione viene ignorata.
Combinazione con altre proprietà
animation-iteration-count lavora in stretta collaborazione con animation-direction. Se il conteggio è maggiore di 1 e la direzione è alternate, ogni altro ciclo viene eseguito in senso inverso, producendo un movimento fluido avanti e indietro invece di un brusco ritorno all'inizio a ogni ripetizione.
Quando vengono specificati più valori separati da virgole, vengono applicati in sequenza alle animazioni definite in animation-name. Se ci sono meno valori che animazioni, la lista viene ripetuta. Se ci sono più valori che animazioni, i valori in eccesso vengono ignorati.
La proprietà animation-iteration-count è una delle proprietà CSS3 ed è supportata da tutti i browser moderni. Può essere impostata anche come parte della notazione abbreviata animation.
| Valore iniziale | 1 |
|---|---|
| Si applica a | Tutti gli elementi, pseudo-elementi ::before e ::after. |
| Ereditata | No. |
| Animabile | No. |
| Versione | CSS3 |
| Sintassi DOM | object.style.animationIterationCount = "infinite"; |
Sintassi
Sintassi della proprietà CSS animation-iteration-count
animation-iteration-count: number | infinite | initial | inherit;Esempio della proprietà animation-iteration-count:
Esempio della proprietà CSS animation-iteration-count con valore numerico
<!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>Esempio della proprietà animation-iteration-count con il valore "infinite":
Esempio della proprietà CSS animation-iteration-count con valore 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>Impostare animation-iteration-count: infinite è il metodo standard per creare spinner di caricamento. Combinalo con una trasformazione rotate() all'interno di @keyframes e una animation-timing-function linear affinché la rotazione avvenga a velocità costante senza pause di easing.
Valori
| Valore | Descrizione | Provalo |
|---|---|---|
| number | Definisce quante volte l'animazione deve essere riprodotta. Il valore predefinito è 1. | Provalo » |
| infinite | L'animazione viene riprodotta senza interruzioni. | Provalo » |
| initial | Imposta la proprietà al suo valore predefinito. | |
| inherit | Eredita la proprietà dall'elemento padre. |