Właściwości CSS związane z animacjami
Ten artykuł wyjaśnia właściwości CSS związane z animacjami.
Możesz nauczyć się, jak używać i pisać składnię właściwości @keyframes
, animation
i transition
.
YouTube Video
HTML do podglądu
css-animation.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-animation.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Animation Related Properties</h2>
20 </header>
21 <article>
22 <h3>@keyframes</h3>
23 <section>
24 <h4>Animation Examples</h4>
25 <header><h4>animation: slide 3s ease infinite</h4></header>
26 <section class="sample-view">
27 <div class="box-animation-slide">Slide Box</div>
28 </section>
29 <header><h4>animation: color-change 3s ease infinite</h4></header>
30 <section class="sample-view">
31 <div class="box-animation-color-change">Color Change Box</div>
32 </section>
33 <header><h4>animation: fade 3s ease infinite</h4></header>
34 <section class="sample-view">
35 <div class="box-animation-fade">Fade Box</div>
36 </section>
37 </section>
38 </article>
39 <article>
40 <h3>animation</h3>
41 <section>
42 <h4>Animation Examples</h4>
43 <header><h4>animation: slide 3s ease-in-out infinite</h4></header>
44 <section class="sample-view">
45 <div class="box-animation-ease-in-out">Slide Box</div>
46 </section>
47 <header><h4>animation: color-change 3s ease-in-out 1s 3 alternate</h4></header>
48 <section class="sample-view">
49 <div class="box-animation-alternate">Color Change Box</div>
50 </section>
51 </section>
52 </article>
53 <article>
54 <h3>transition</h3>
55 <section>
56 <h4>Transition Examples</h4>
57 <header><h4>transition: background-color 2s ease</h4></header>
58 <section class="sample-view">
59 <div class="transition-box">Hover me!</div>
60 </section>
61 <header><h4>transition: background-color 5s ease, width 0.5s ease-in</h4></header>
62 <section class="sample-view">
63 <div class="transition-2-properties">Hover me!</div>
64 </section>
65 </section>
66 </article>
67 </main>
68</body>
69</html>
Animacja i przejście
Reguła @keyframes
1/* Animation definition */
2@keyframes slide {
3 0% {
4 transform: translateX(0);
5 }
6 50% {
7 transform: translateX(200px);
8 }
9 100% {
10 transform: translateX(0);
11 }
12}
13
14/* Apply the animation */
15.box-animation-slide {
16 width: 100px;
17 height: 100px;
18 background-color: skyblue;
19 animation: slide 3s ease infinite;
20}
@keyframes
jest używane w animacjach CSS do określania, jak style zmieniają się w trakcie animacji. W @keyframes
zmiany stylów od początku do końca animacji są określane za pomocą procentów czasu lub słów kluczowych (from
i to
).
- To jest przykład animacji, w której element przesuwa się z lewej na prawą stronę i wraca do pierwotnej pozycji.
- W tym przykładzie po
@keyframes
napisanoslide
, co definiuje animację o nazwieslide
. 0%
oznacza początek animacji, gdzietranslateX(0)
ustawia element w jego pierwotnym położeniu.50%
oznacza środek animacji, gdzie element przesuwa się o 200px w prawo za pomocątranslateX(200px)
.100%
oznacza koniec animacji, gdzie element wraca do swojej pierwotnej pozycji.- W klasie
box-animation-slide
właściwośćanimation
jest używana do zastosowania animacjislide
w odstępach 3 sekundowych.
1@keyframes color-change {
2 0% {
3 background-color: red;
4 }
5 25% {
6 background-color: blue;
7 }
8 50% {
9 background-color: green;
10 }
11 75% {
12 background-color: yellow;
13 }
14 100% {
15 background-color: red;
16 }
17}
18
19.box-animation-color-change {
20 width: 100px;
21 height: 100px;
22 background-color: skyblue;
23 animation: color-change 3s ease infinite;
24}
- Możesz precyzyjnie kontrolować style w trakcie animacji. Określając procenty, możesz stosować różne style w dowolnych momentach.
- W tym przykładzie kolor stopniowo zmienia się z czerwonego na niebieski, zielony, żółty i z powrotem na czerwony.
1@keyframes fade {
2 from {
3 opacity: 0;
4 }
5 to {
6 opacity: 1;
7 }
8}
9
10.box-animation-fade {
11 width: 100px;
12 height: 100px;
13 background-color: blue;
14 animation: fade 3s ease infinite;
15}
- W tym przykładzie
from
jest równoważne0%
, ato
jest równoważne100%
. To pozwala na definiowanie prostych animacji.
Podstawowa składnia
1@keyframes animation-name {
2 0% {
3 /* Style at the start */
4 }
5 50% {
6 /* Style at the midpoint */
7 }
8 100% {
9 /* Style at the end */
10 }
11}
animation-name
: Nazwa animacji. Jest to określane za pomocą właściwościanimation
lubanimation-name
.- Procenty lub słowa kluczowe: Użyj procentów od
0%
do100%
lub słów kluczowychfrom
(równoważne0%
) ito
(równoważne100%
).
Właściwość animation
1.box-animation-ease-in-out {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: slide 3s ease-in-out infinite;
6}
Właściwość animation
służy do stosowania animacji na elementach. Animacje określają, jak zestaw stylów CSS zmienia się w czasie. Dzięki właściwości animation
możesz kontrolować czas trwania, zachowanie, opóźnienie, liczbę powtórzeń i inne cechy animacji.
- Klasa
box-animation-ease-in-out
określaslide
jakoanimation-name
i wykorzystuje animacjęslide
zdefiniowaną w@keyframes
.3s
toanimation-duration
, co oznacza, że każdy cykl animacji trwa 3 sekundy.ease-in-out
toanimation-timing-function
, co powoduje, że animacja rozpoczyna się powoli, przyspiesza, a na końcu ponownie zwalnia.infinite
toanimation-iteration-count
, co oznacza, że animacja będzie powtarzana w nieskończoność.
1.box-animation-alternate {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: color-change 3s ease-in-out 1s 3 alternate;
6}
- Klasa
box-animation-alternate
określacolor-change
jakoanimation-name
i wykorzystuje animacjęcolor-change
zdefiniowaną w@keyframes
.1s
poease-in-out
toanimation-delay
, określające opóźnienie przed rozpoczęciem animacji. Animacja rozpocznie się po 1 sekundzie.3
po1s
toanimation-iteration-count
, co oznacza, że animacja powtórzy się 3 razy.alternate
toanimation-direction
, określające kierunek odtwarzania animacji.alternate
oznacza, że animacja jest odtwarzana naprzemiennie.
Kompozycja właściwości animation
Właściwość animation
jest skrótem, który łączy kilka podwłaściwości w jedną. Oto główne podwłaściwości:.
- Właściwość
animation-name
: Określa nazwę animacji do zastosowania. Musi odpowiadać nazwie animacji zdefiniowanej w@keyframes
. - Właściwość
animation-duration
: Określa czas potrzebny na zakończenie jednego cyklu animacji. Jednostki czasu to sekundy (s
) lub milisekundy (ms
). - Właściwość
animation-timing-function
: Określa krzywą prędkości animacji. Stosuje się wartości takie jak:ease
,linear
,ease-in
,ease-out
,ease-in-out
, itp.- Określenie
ease
sprawia, że animacja zaczyna się powoli, przyspiesza, a następnie ponownie zwalnia na końcu. - Określenie
linear
powoduje, że animacja przebiega z stałą prędkością od początku do końca. - Określenie
ease-in
powoduje, że animacja zaczyna się powoli, a kończy szybko. - Określenie
ease-out
powoduje, że animacja zaczyna się szybko, a kończy powoli. - Określenie
ease-in-out
powoduje, że animacja zaczyna się powoli, przyspiesza i kończy powoli.
- Określenie
- Właściwość
animation-delay
określa opóźnienie przed rozpoczęciem animacji. Jednostką czasu są sekundy lub milisekundy. - Właściwość
animation-iteration-count
określa liczbę powtórzeń animacji. Określenieinfinite
spowoduje, że animacja będzie powtarzana w nieskończoność. - Właściwość
animation-direction
określa kierunek odtwarzania animacji. Opcje obejmująnormal
(kierunek do przodu),reverse
(kierunek wstecz),alternate
(naprzemienne odtwarzanie) ialternate-reverse
(naprzemienne odtwarzanie zaczynając od tyłu). - Właściwość
animation-fill-mode
określa stan animacji przed jej rozpoczęciem i po jej zakończeniu. Możesz określić jedno znone
,forwards
,backwards
lubboth
. - Właściwość
animation-play-state
określa, czy animacja jest odtwarzana czy wstrzymana. Możesz określićrunning
lubpaused
.
Podsumowanie
Właściwość animation
to potężne narzędzie do dynamicznej zmiany stylu elementów. Używając @keyframes
, możesz określić, jak style zmieniają się w czasie, oraz kontrolować szczegółowe zachowanie animacji za pomocą każdej podwłaściwości animation
.
Właściwość transition
1.transition-box {
2 background-color: lightgray;
3 transition: background-color 2s ease;
4}
5
6.transition-box:hover {
7 background-color: steelblue;
8}
9
10.transition-2-properties {
11 background-color: lightgray;
12 width: 150px;
13 height: 50px;
14 transition: background-color 5s ease, width 0.5s ease-in;
15}
16
17.transition-2-properties:hover {
18 background-color: blue;
19 width: 250px;
20}
Właściwość transition
służy do stosowania efektów animacji do zmian stylu CSS. Pozwala, aby zmiany wydawały się płynne podczas zmian stanu, takich jak hover
, focus
, active
, lub gdy style są dynamicznie zmieniane przez JavaScript.
Przyjrzyjmy się przykładowi klasy transition-box
, w której kolor tła zmienia się płynnie podczas najeżdżania myszką na przycisk.
- W klasie transition-box
właściwość transition
stosuje 2-sekundowe przejście do zmiany koloru tła. Zmiana została określona jako ease
, co sprawia, że jest płynna.
- Pseudo-klasa hover
zmienia kolor tła z lightgray
na steelblue
, gdy myszka znajduje się nad przyciskiem. Ta zmiana następuje płynnie w ciągu 2 sekund określonych w klasie transition-box
.
Można zastosować transition
do wielu właściwości jednocześnie.
- W przykładzie klasy transition-2-properties
kolor tła zmienia się w ciągu 5 sekund, a szerokość zmienia się w ciągu 0,5 sekundy.
Podstawowa składnia
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
Property
określa, do których właściwości CSS powinna być zastosowana animacja. Ustawienieall
powoduje zastosowanie animacji do wszystkich właściwości.Duration
określa czas trwania animacji do jej zakończenia. Określ, używając sekund (s
) lub milisekund (ms
).Timing-function
określa zmiany prędkości animacji. Możesz użyć opcji takich jakease
,linear
,ease-in
,ease-out
,ease-in-out
itd.Delay
określa czas opóźnienia przed rozpoczęciem animacji. Określ w sekundach lub milisekundach.
Szczegółowe właściwości transition
.
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
Transition
może być również stosowany jako poszczególne właściwości, jak poniżej.
transition-property
: Określa właściwość, do której ma być zastosowana animacja.transition-duration
: Określa czas trwania animacji do jej zakończenia.transition-timing-function
: Określa prędkość postępu animacji. Możesz używać opcji takich jakease
,linear
,ease-in
,ease-out
,ease-in-out
.transition-delay
: Określa czas opóźnienia przed rozpoczęciem animacji.
Możesz śledzić ten artykuł, korzystając z Visual Studio Code na naszym kanale YouTube. Proszę również sprawdzić nasz kanał YouTube.