Wyjaśnienie kluczowych elementów CSS związanych z animacjami
Zanim przejdziemy do zadania, omówmy szczegółowo elementy, które będziesz używał w tym zadaniu:
@keyframes – Definiowanie animacji
@keyframes nazwa-animacji {
from { /* stan początkowy */ }
to { /* stan końcowy */ }
}
lub:
@keyframes nazwa-animacji {
0% { /* stan początkowy */ }
50% { /* stan pośredni */ }
100% { /* stan końcowy */ }
}
Przykład: Przesunięcie elementu z lewej strony na środek:
@keyframes slideIn {
from {
transform:
translateX(-100%);
}
to { transform:
translateX(0); }
}
Uwagi: Nazwa animacji (nazwa-animacji) jest dowolna, ale musi być unikalna i później użyta w regule animation.
animation – Uruchamianie animacji
Składnia:
animation: nazwa-animacji czas-trwania [timing-function] [delay] [iteration-count] [direction] [fill-mode];
nazwa-animacji – Nazwa animacji zdefiniowanej w @keyframes.
czas-trwania – Czas trwania animacji (np. 2s – 2 sekundy, 500ms – 500 milisekund).
[timing-function] (opcjonalne) – Funkcja czasu (np. ease, linear, ease-in, ease-out), określa sposób zmiany animacji (np. czy przyspiesza, czy zwalnia).
[delay] (opcjonalne) – Opóźnienie przed startem animacji (np. 1s).
[iteration-count] (opcjonalne) – Liczba powtórzeń animacji (np. infinite dla nieskończonej pętli, 2 dla dwukrotnego wykonania).
[direction] (opcjonalne) – Kierunek animacji (np. normal, reverse, alternate).
[fill-mode] (opcjonalne) – Określa, co dzieje się z elementami przed i po animacji (np. forwards – zatrzymuje element w stanie końcowym).
Przykład: Uruchomienie animacji przesunięcia nagłówka
h1 {
animation: slideIn 1s ease-in-out forwards;
}
Tutaj animacja slideIn trwa 1 sekundę, używa funkcji czasu ease-in-out (płynne przyspieszanie i zwalnianie) i zatrzymuje się w stanie końcowym (forwards).
transform – Transformacje elementów
Przykład: Pulsowanie przycisku (zmiana rozmiaru):
@keyframes pulse {
0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); }
}