Kurs HTML

17.5. Właściwość animation-iteration-count

Strona główna > Kurs CSS > Rozdział 17: Animacje CSS (@keyframes) > Właściwość 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;.