Animacje
W ostatniej części naszego kursu zajmiemy się animacjami, czyli czymś co urozmaici naszą stronę, lecz należy pamiętać, aby z nimi nie przesadzać!
Dodanie animacji do elementu HTML jest bardzo proste. Możemy wykorzystać do tego celu właściwość animation. Za pomocą wspomnianej właściwości animation możemy określić:
- czas trwania animacji, czyli właściwość animation-duration
- tempo animacji, czyli właściwość animation-timing-function
- opóźnienie lub przyspieszenie animacji, czyli właściwość animation-delay
- ilość powtórzeń animacji, czyli właściwość animation-iteration-count
- kierunek powtarzania się oraz rozpoczęcia animacji, czyli właściwość animation-direction
- dodatkowy wygląd elementu HTML przed lub po wykonaniu się animacji, czyli właściwość animation-fill-mode
- zatrzymanie lub wznowienie aktualnej animacji, czyli właściwość animation-play-state
Przede wszystkim za pomocą właściwości animation możemy określić nazwę animacji (animation-name), jaka ma zostać dodana do danego elementu HTML, jednak pierw taką animację musimy sami utworzyć. W tym momencie zaczyna się nasza zabawa z... selektorami czasu animacji i regułą @keyframes.
Przykładowa reguła @keyframes:
@keyframes nazwa_animacji
{
0% { background-color:white; }
25% { background-color:gold; }
50% { background-color:red; }
75% { background-color:green; }
100% { background-color:white; }
}
Obok słowa kluczowego @keyframes należy umieścić nazwę jaką chcemy, aby posiadała nasza animacja (np. moja_animacja). Następnie umieszczamy nawiasy klamrowe i w tych nawiasach zapisujemy reguły animacji, które są tworzone za pomocą różnych dostępnych właściwości CSS (np. background-color). Przed każdą taką regułą należy umieścić selektor czasu animacji, którego wartość jest zapisywana za pomocą jednostek wyrażonych w procentach (np. 0%, 25%, itd.). Selektory czasu animacji należy umieszczać w uporządkowanej kolejności rosnącej (od najmniejszej wartości 0%, do największej wartości 100%).
Dołączmy teraz naszą animację do poniższego elementu za pomocą właściwości CSS:
div {animation: nazwa_animacji czas_trwania}
Oczywiście animacje nie kończą się jedynie na zmienianiu kolorów tła, pozwalają również na inne ciekawe efekty. Poniżej znajdziecie kilka przykładów oraz kod w jaki sposób zostały osiągnięte.
przesuwanie
@keyframes przesuwanie
{
0% { left: -100px; }
100% { left: 100px; }
}
zmiana rozmiaru
@keyframes zmiana_rozmiaru
{
0% { width: 400px; }
100% { width: 100px; }
}
Animacje za pomocą właściwości transform
Do animacji możemy również użyć bardzo ciekawej właściwości transform, poniżej znajdziecie kilka przykładów jej zastosowania:
obracanie elementu
@keyframes obracanie_elementu
{
0% { transform:rotate(0deg); }
100% { transform:rotate(360deg); }
}
skalowanie elementu
@keyframes skalowanie_elementu
{
0% { transform:scale(1.0, 1.0); }
100% { transform:scale(3.0, 2.0) }
}
wykrzywianie elementu
@keyframes wykrzywianie_elementu
{
0% { transform:skew(0deg, 0deg); }
100% { transform:skew(10deg, 20deg) }
}
W celu zapoznania się z resztą właściwości transform odwiedź stronę: w3schools
Praktyczne zastosowanie animacji zobacz TUTAJ