Kurs języka HTML i CSS

Poradnik webmastera

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
CSS3 - animacje

CSS3 - @keyframes

Email Drukuj PDF

Tematy: animation | @keyframes | animation-name | animation-duration | animation-timing-function | animation-delay | animation-iteration-count | animation-direction | animation-play-state

Dane w pigułce
Zastosowanie Definiuje podział animacji na klatki
Dziedziczenie nie
Wartości 0-100% | from (=0%) to (=100%)
Wartość domyślna brak
Przykład @keyframes nazwa {from {style} to {style}};
Składnia JavaScript  

Aby zdefiniować ramki, należy wpisać w definicji stylu @keyframes nazwa rozkład;.

Żadna z przeglądarek nie obsługuje czystego kodu, Chrome i Safari wymagają prefiksu -webkit-.

Jak powiedzieliśmy wcześniej, animacja składa się z dwóch bloków kodu:

  • Pierwszy blok zawiera definicję samej animacji przypisanej do obiektu, określając jej nazwę, czas trwania, rozkład czasowy, opóźnienie startu, liczbę powtórzeń i kierunek. Dane te mogą zostać podane zbiorczo jako wartości parametrów animation lub też w osobnych wierszach, za pomocą bardziej szczegółowych poleceń, które opisują tutaj kolejne strony.
  • Drugi blok, czyli @keyframes, zawiera selektory poszczególnych klatek animacji obiektu oraz przypisane poszczególnym klatkom style.

Dopiero obie części powodują, że uzyskujemy ruch na ekranie.

Przykładowa definicja:

1. Definicja obiektu i animacji

div.pojemnik
{
width:100px;
height:50px;
background-color:gainsboro;
animation: pulsowanie 3s infinite alternate;
-webkit-animation: pulsowanie 3s infinite alternate;
}

2. Definicja klatek

@keyframes pulsowanie
{
from {width:100px;}
to {width:300px;}
}
@-webkit-keyframes pulsowanie
{
from {width:100px;}
to {width:300px;}
}

Po wprowadzenia pojemnika wyróżnionego tu klasą "pojemnik" uzyskamy efekt animacji - pulsowanie pojemnika między szerokością początkową 100 pikseli i końcową 300 pikseli, trwające 3 sekundy w jednym przebiegu, w nieskończoność, w obie strony:

Możemy również zastosować bardziej rozbudowany podział z selektorami procentowymi, np.:

1. Definicja obiektu i animacji

div.pojemnik2
{
width:50px;
height:50px;
position:relative;
background-color:gainsboro;
animation: przechodzenie 5s ease infinite alternate;
-webkit-animation: przechodzenie 5s ease infinite alternate;
}

2. Definicja klatek

@keyframes przechodzenie
{
0% {left:0px;}
20% {left:50px; background-color:green;}
40% {left:100px; background-color:red;}
60% {left:150px; background-color:blue;}
80% {left:200px; background-color:yellow;}
100% {left:250px; background-color:brown;}
}
@-webkit-keyframes przechodzenie
{
0% {left:0px;}
20% {left:50px; background-color:green;}
40% {left:100px; background-color:red;}
60% {left:150px; background-color:blue;}
80% {left:200px; background-color:yellow;}
100% {left:250px; background-color:brown;}
}

W efekcie uzyskamy:

Ważne: rozkład czasowy (linear, ease itd.) w podziale animacji na klatki dotyczy ruchu od klatki do klatki.


Interpretacja: Chrome i Safari (z prefiksem).

 

CSS. Tworzenie nowoczesnych stron WWW.

CSS3. Tworzenie nowoczesnych stron WWW
(czerwiec 2012)

HTML5 i CSS3. Standardy przyszłości

HTML5 i CSS3
Standardy przyszłości

CSS3. Szybki start. Wydanie V

CSS3. Szybki start.
Wydanie V