17.5. Właściwość animation-iteration-count
animation-iteration-count
Do czego służy animation-iteration-count
?
Właściwość animation-iteration-count
określa, **ile razy cykl animacji** (zdefiniowany przez @keyframes
i trwający animation-duration
) **ma zostać odtworzony**.
Domyślnie animacja odtwarza się tylko raz. Ta właściwość pozwala na tworzenie zapętlonych lub wielokrotnie powtarzanych efektów.
Składnia i wartości
Właściwość animation-iteration-count
przyjmuje jedną lub więcej wartości, oddzielonych przecinkami, odpowiadających kolejnym animacjom zdefiniowanym w animation-name
.
animation-iteration-count: infinite | <liczba> [, infinite | <liczba>]*;
infinite
: Animacja będzie powtarzana w nieskończoność.<liczba>
: Nieujemna liczba (może być ułamkowa) określająca, ile razy animacja ma się odtworzyć.1
(wartość domyślna): Animacja odtworzy się raz.2
: Animacja odtworzy się dwa razy.0.5
: Animacja odtworzy się do połowy swojego cyklu.
Wartość domyślna: 1
.
Przykład:
@keyframes migotanie {
50% { opacity: 0; }
}
@keyframes obrot {
to { transform: rotate(360deg); }
}
.element1 {
animation-name: migotanie;
animation-duration: 1s;
/* Powtórz animację 3 razy */
animation-iteration-count: 3;
}
.element2 {
animation-name: obrot;
animation-duration: 2s;
/* Powtarzaj animację w nieskończoność */
animation-iteration-count: infinite;
}
.element3 {
animation-name: animacjaX, animacjaY;
animation-duration: 1s, 4s;
/* Animacja X powtórzy się 5 razy, animacja Y w nieskończoność */
animation-iteration-count: 5, infinite;
}
.element4 {
animation-name: migotanie;
animation-duration: 1s;
/* Odtwórz tylko pierwszą połowę animacji */
animation-iteration-count: 0.5;
}
Jeśli lista liczb powtórzeń jest krótsza niż lista nazw animacji, wartości są powtarzane.
Zastosowania animation-iteration-count
- Zapętlone animacje tła lub ikon: Ustawienie
infinite
jest idealne dla subtelnych, ciągłych animacji, takich jak pulsowanie, obracanie się ikon ładowania, czy delikatne przesuwanie tła. - Krótkie, powtarzalne efekty: Ustawienie konkretnej liczby powtórzeń (np. 2 lub 3) może być użyte do zwrócenia uwagi na element poprzez krótki, powtarzający się efekt (np. lekkie potrząśnięcie).
- Kontrolowane sekwencje: W połączeniu z
animation-delay
i potencjalnie JavaScriptem, można tworzyć złożone sekwencje, gdzie pewne animacje odtwarzają się określoną liczbę razy przed przejściem do następnego etapu. - Debugowanie: Czasami ustawienie
infinite
podczas tworzenia animacji ułatwia obserwację jej przebiegu bez konieczności ciągłego odświeżania.
FAQ - Najczęściej zadawane pytania
Co oznacza ułamkowa liczba powtórzeń, np. 1.5
?
Ułamkowa wartość oznacza, że animacja zostanie odtworzona pełną liczbę razy (część całkowita) plus część ostatniego cyklu odpowiadającą części ułamkowej. Np. 1.5
oznacza odtworzenie pełnego cyklu, a następnie pierwszej połowy drugiego cyklu.
Czy mogę użyć wartości ujemnej?
Nie, wartości ujemne dla animation-iteration-count
są nieprawidłowe i zostaną zignorowane lub potraktowane jako 1
(wartość domyślna).
Czy animation-iteration-count: 0;
ma sens?
Ustawienie liczby powtórzeń na 0
oznacza, że animacja nie odtworzy się ani razu. Jest to kolejny sposób na efektywne wyłączenie animacji.
Jak zatrzymać animację ustawioną na infinite
?
Animację powtarzaną w nieskończoność można zatrzymać, zmieniając wartość animation-iteration-count
na konkretną liczbę (np. 1
) lub usuwając właściwości animation
(np. przez zmianę klasy elementu za pomocą JavaScript). Można ją również wstrzymać za pomocą animation-play-state: paused;
.