Samouczek CSS

Strona główna CSS Wprowadzenie do CSS Składnia CSS Selektory CSS Instrukcje CSS Komentarze CSS Kolory CSS Tła CSS Granice CSS Marginesy CSS Dopełnienie CSS Wysokość/szerokość CSS Model skrzynki CSS Zarys CSS Tekst CSS Czcionki CSS Ikony CSS Linki CSS Listy CSS Tabele CSS Wyświetlanie CSS Maks. szerokość CSS Pozycja CSS CSS Z-indeks Przepełnienie CSS zmiennoprzecinkowy CSS Wbudowany blok CSS Wyrównanie CSS Kombinatory CSS CSS Pseudo-klasa Pseudoelement CSS Krycie CSS Pasek nawigacyjny CSS Listy rozwijane CSS Galeria obrazów CSS Sprite obrazu CSS Selektory atrybutów CSS Formularze CSS Liczniki CSS Układ strony internetowej CSS Jednostki CSS Specyfika CSS CSS !ważne Funkcje matematyczne CSS

Zaawansowane CSS

Zaokrąglone rogi CSS Obrazy obramowania CSS Tła CSS Kolory CSS Słowa kluczowe w kolorze CSS Gradienty CSS Cienie CSS Efekty tekstowe CSS Czcionki internetowe CSS Przekształcenia CSS 2D Przekształcenia CSS 3D Przejścia CSS Animacje CSS Etykietki CSS Obrazy w stylu CSS Odbicie obrazu CSS Dopasowanie obiektu CSS Pozycja obiektu CSS Maskowanie CSS Przyciski CSS Paginacja CSS Wiele kolumn CSS Interfejs użytkownika CSS Zmienne CSS Rozmiar pola CSS Zapytania o media CSS Przykłady CSS MQ Flexbox CSS

CSS Responsywne

Wprowadzenie do RWD Okienko RWD Widok siatki RWD Zapytania dotyczące mediów RWD Obrazy RWD Filmy RWD Ramy RWD Szablony RWD

Siatka CSS

Wprowadzenie do siatki Pojemnik na siatkę Element siatki

CSS SASS

Samouczek SASS

Przykłady CSS

Szablony CSS Przykłady CSS quiz css Ćwiczenia CSS Certyfikat CSS

Odniesienia CSS

Dokumentacja CSS Selektory CSS Funkcje CSS Dźwięk referencyjny CSS Bezpieczne czcionki internetowe CSS Animowalny CSS Jednostki CSS Konwerter CSS PX-EM Kolory CSS Wartości kolorów CSS Domyślne wartości CSS Obsługa przeglądarki CSS

Animacje CSS


Animacje CSS

CSS umożliwia animację elementów HTML bez użycia JavaScript lub Flash!

CSS

W tym rozdziale poznasz następujące właściwości:

  • @keyframes
  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-timing-function
  • animation-fill-mode
  • animation

Obsługa przeglądarek dla animacji

Liczby w tabeli określają pierwszą wersję przeglądarki, która w pełni obsługuje tę właściwość.

Property
@keyframes 43.0 10.0 16.0 9.0 30.0
animation-name 43.0 10.0 16.0 9.0 30.0
animation-duration 43.0 10.0 16.0 9.0 30.0
animation-delay 43.0 10.0 16.0 9.0 30.0
animation-iteration-count 43.0 10.0 16.0 9.0 30.0
animation-direction 43.0 10.0 16.0 9.0 30.0
animation-timing-function 43.0 10.0 16.0 9.0 30.0
animation-fill-mode 43.0 10.0 16.0 9.0 30.0
animation 43.0 10.0 16.0 9.0 30.0

Co to są animacje CSS?

Animacja pozwala elementowi stopniowo zmieniać się z jednego stylu na inny.

Możesz zmienić tyle właściwości CSS, ile chcesz, tyle razy, ile chcesz.

Aby użyć animacji CSS, musisz najpierw określić kilka klatek kluczowych animacji.

Klatki kluczowe zawierają style, które element będzie miał w określonych momentach.


Zasada @keyframes

Gdy określisz style CSS wewnątrz @keyframes reguły, animacja będzie stopniowo zmieniać się z bieżącego stylu na nowy w określonych momentach.

Aby animacja działała, musisz powiązać animację z elementem.

Poniższy przykład wiąże animację „przykład” z elementem <div>. Animacja potrwa 4 sekundy i stopniowo zmieni kolor tła elementu <div> z „czerwonego” na „żółty”:

Przykład

/* The animation code */
@keyframes example {
  from {background-color: red;}
  to {background-color: yellow;}
}

/* The element to apply the animation to */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

Uwaga: Właściwość animation-durationokreśla, jak długo animacja powinna być ukończona. Jeśli animation-durationwłaściwość nie zostanie określona, ​​animacja nie zostanie wykonana, ponieważ wartość domyślna to 0s (0 sekund). 

W powyższym przykładzie określiliśmy, kiedy styl się zmieni, używając słów kluczowych „od” i „do” (co oznacza 0% (początek) i 100% (zakończenie)).

Możliwe jest również użycie procentu. Używając wartości procentowych, możesz dodać tyle zmian stylu, ile chcesz.

Poniższy przykład zmieni kolor tła elementu <div>, gdy animacja jest ukończona w 25%, w 50% i ponownie, gdy animacja jest ukończona w 100%:

Przykład

/* The animation code */
@keyframes example {
  0%   {background-color: red;}
  25%  {background-color: yellow;}
  50%  {background-color: blue;}
  100% {background-color: green;}
}

/* The element to apply the animation to */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

Poniższy przykład zmieni zarówno kolor tła, jak i położenie elementu <div>, gdy animacja jest ukończona w 25%, w 50% i ponownie, gdy animacja jest ukończona w 100%:

Przykład

/* The animation code */
@keyframes example {
  0%   {background-color:red; left:0px; top:0px;}
  25%  {background-color:yellow; left:200px; top:0px;}
  50%  {background-color:blue; left:200px; top:200px;}
  75%  {background-color:green; left:0px; top:200px;}
  100% {background-color:red; left:0px; top:0px;}
}

/* The element to apply the animation to */
div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}


Opóźnij animację

Właściwość animation-delayokreśla opóźnienie rozpoczęcia animacji.

Poniższy przykład ma 2 sekundy opóźnienia przed rozpoczęciem animacji:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-delay: 2s;
}

Dopuszczalne są również wartości ujemne. Jeśli użyjesz wartości ujemnych, animacja rozpocznie się tak, jakby była odtwarzana przez N sekund.

W poniższym przykładzie animacja rozpocznie się tak, jakby była odtwarzana przez 2 sekundy:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-delay: -2s;
}

Ustaw, ile razy animacja powinna być uruchamiana

Właściwość animation-iteration-countokreśla, ile razy animacja powinna zostać uruchomiona.

Poniższy przykład uruchomi animację 3 razy, zanim się zatrzyma:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 3;
}

W poniższym przykładzie użyto wartości „infinite”, aby animacja trwała wiecznie:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: infinite;
}

Uruchom animację w odwrotnym kierunku lub w cyklach alternatywnych

Właściwość animation-directionokreśla, czy animacja ma być odtwarzana w przód, wstecz czy w naprzemiennych cyklach.

Właściwość kierunek animacji może mieć następujące wartości:

  • normal- Animacja jest odtwarzana normalnie (do przodu). To jest domyślne
  • reverse - Animacja jest odtwarzana w odwrotnym kierunku (do tyłu)
  • alternate - Animacja jest odtwarzana najpierw do przodu, potem do tyłu
  • alternate-reverse - Animacja jest odtwarzana najpierw do tyłu, potem do przodu

Poniższy przykład uruchomi animację w odwrotnym kierunku (do tyłu):

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-direction: reverse;
}

W poniższym przykładzie użyto wartości „alternate”, aby animacja była uruchamiana najpierw do przodu, a następnie do tyłu:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 2;
  animation-direction: alternate;
}

W poniższym przykładzie użyto wartości „alternate-reverse”, aby animacja była uruchamiana najpierw do tyłu, a następnie do przodu:

Przykład

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 2;
  animation-direction: alternate-reverse;
}

Określ krzywą prędkości animacji

Właściwość animation-timing-functionokreśla krzywą prędkości animacji.

Właściwość animacja-timing-function może mieć następujące wartości:

  • ease - Określa animację z powolnym startem, potem szybkim i powolnym zakończeniem (jest to ustawienie domyślne)
  • linear - Określa animację z tą samą prędkością od początku do końca
  • ease-in - Określa animację z powolnym startem
  • ease-out - Określa animację z wolnym końcem
  • ease-in-out - Określa animację z powolnym początkiem i końcem
  • cubic-bezier(n,n,n,n)- Pozwala zdefiniować własne wartości w funkcji sześciennej-Beziera

Poniższy przykład pokazuje niektóre z różnych krzywych prędkości, których można użyć:

Przykład

#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}

Określ tryb wypełniania dla animacji

Animacje CSS nie wpływają na element przed odtworzeniem pierwszej klatki kluczowej lub po odtworzeniu ostatniej klatki kluczowej. Właściwość animacja-fill-mode może zastąpić to zachowanie.

Właściwość animation-fill-modeokreśla styl elementu docelowego, gdy animacja nie jest odtwarzana (przed rozpoczęciem, po zakończeniu lub w obu przypadkach).

Właściwość animation-fill-mode może mieć następujące wartości:

  • none- Domyślna wartość. Animacja nie zastosuje żadnych stylów do elementu przed ani po jego wykonaniu
  • forwards- Element zachowa wartości stylu ustawione przez ostatnią klatkę kluczową (w zależności od kierunku animacji i licznika iteracji animacji)
  • backwards - Element otrzyma wartości stylu ustawione przez pierwszą klatkę kluczową (w zależności od kierunku animacji) i zachowa je podczas okresu opóźnienia animacji
  • both - Animacja będzie zgodna z zasadami zarówno do przodu, jak i do tyłu, rozszerzając właściwości animacji w obu kierunkach

Poniższy przykład pozwala elementowi <div> zachować wartości stylu z ostatniej klatki kluczowej po zakończeniu animacji:

Przykład

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-fill-mode: forwards;
}

Poniższy przykład pozwala elementowi <div> uzyskać wartości stylu ustawione przez pierwszą klatkę kluczową przed rozpoczęciem animacji (w okresie opóźnienia animacji):

Przykład

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-delay: 2s;
  animation-fill-mode: backwards;
}

Poniższy przykład pozwala elementowi <div> uzyskać wartości stylu ustawione przez pierwszą klatkę kluczową przed rozpoczęciem animacji i zachować wartości stylu z ostatniej klatki kluczowej po zakończeniu animacji:

Przykład

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-delay: 2s;
  animation-fill-mode: both;
}

Właściwość skrócona animacji

Poniższy przykład wykorzystuje sześć właściwości animacji:

Przykład

div {
  animation-name: example;
  animation-duration: 5s;
  animation-timing-function: linear;
  animation-delay: 2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

Ten sam efekt animacji, jak powyżej, można uzyskać za pomocą animationwłaściwości skróconej:

Przykład

div {
  animation: example 5s linear 2s infinite alternate;
}

Sprawdź się za pomocą ćwiczeń

Ćwiczenie:

Dodaj 2-sekundową animację dla elementu <div>, który zmienia kolor z czerwonego na niebieski. Nazwij animację „przykład”.

<style>
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: ;
  : 2s;
}

@keyframes example {
  from {: red;}
  to {: blue;}
}
</style>

<body>
  <div>This is a div</div>
</body>


Właściwości animacji CSS

W poniższej tabeli wymieniono regułę @keyframes i wszystkie właściwości animacji CSS:

Property Description
@keyframes Specifies the animation code
animation A shorthand property for setting all the animation properties
animation-delay Specifies a delay for the start of an animation
animation-direction Specifies whether an animation should be played forwards, backwards or in alternate cycles
animation-duration Specifies how long time an animation should take to complete one cycle
animation-fill-mode Specifies a style for the element when the animation is not playing (before it starts, after it ends, or both)
animation-iteration-count Specifies the number of times an animation should be played
animation-name Specifies the name of the @keyframes animation
animation-play-state Specifies whether the animation is running or paused
animation-timing-function Specifies the speed curve of the animation