Animasjonsrelaterte CSS-egenskaper
Denne artikkelen forklarer animasjonsrelaterte CSS-egenskaper.
Du kan lære om bruk og syntaks for @keyframes
, animation
og transition
-egenskaper.
YouTube Video
HTML for Forhåndsvisning
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>
Animasjon og Overgang
@keyframes
-regel
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
brukes i CSS-animasjoner for å spesifisere hvordan stiler endres under animasjonen. I @keyframes
spesifiseres stilendringer fra starten til slutten av animasjonen med tidsprosentandeler eller nøkkelord (from
og to
).
- Dette er et eksempel på en animasjon der et element glir fra venstre til høyre og returnerer til sin opprinnelige posisjon.
- I dette eksemplet er
slide
skrevet etter@keyframes
, som definerer en animasjon ved navnslide
. 0%
er starten av animasjonen, dertranslateX(0)
plasserer elementet på sin opprinnelige plassering.50%
er midt i animasjonen, der elementet beveger seg 200 piksler til høyre ved bruk avtranslateX(200px)
.100%
er slutten av animasjonen, der elementet returnerer til sin opprinnelige posisjon.- I
box-animation-slide
-klassen brukesanimation
-egenskapen for å brukeslide
-animasjonen med 3 sekunders intervaller.
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}
- Du kan detaljerte kontrollere stilene under en animasjon. Ved å spesifisere prosentandeler kan du bruke forskjellige stiler på vilkårlige tidspunkter.
- I dette eksemplet endres fargen gradvis fra rød til blå, til grønn, til gul, og tilbake til rød.
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}
- I dette eksemplet tilsvarer
from
0%
ogto
tilsvarer100%
. Dette lar deg definere enkle animasjoner.
Grunnleggende Syntax
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
: Navnet på animasjonen. Dette spesifiseres ved å brukeanimation
-egenskapen elleranimation-name
-egenskapen.- Prosentandel eller nøkkelord: Bruk prosentandeler fra
0%
til100%
, eller nøkkelordenefrom
(tilsvarer0%
) ogto
(tilsvarer100%
).
animation
-egenskapen
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}
animation
-egenskapen brukes til å anvende animasjoner på et element. Animasjoner definerer hvordan et sett med CSS-stiler endrer seg over tid. Med animation
-egenskapen kan du kontrollere tidspunkt, oppførsel, forsinkelse, antall repetisjoner og mer for en animasjon.
box-animation-ease-in-out
-klassen angirslide
somanimation-name
og brukerslide
-animasjonen definert i@keyframes
.3s
eranimation-duration
, som betyr at hver animasjonssyklus fullføres på 3 sekunder.ease-in-out
eranimation-timing-function
, som gjør at animasjonen starter sakte, akselererer og deretter senkes igjen på slutten.infinite
eranimation-iteration-count
, som betyr at animasjonen vil gjentas på ubestemt tid.
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}
box-animation-alternate
-klassen angircolor-change
somanimation-name
og brukercolor-change
-animasjonen definert i@keyframes
.1s
etterease-in-out
eranimation-delay
, som spesifiserer forsinkelsen før animasjonen starter. Animasjonen vil starte ett sekund senere.3
etter1s
eranimation-iteration-count
, som betyr at animasjonen gjentas 3 ganger.alternate
eranimation-direction
, som spesifiserer avspillingsretningen for animasjonen.alternate
spesifiserer at animasjonen spilles av vekselvis.
Sammensetningen av animation
-egenskapen.
animation
-egenskapen er en kortfattet egenskap som kombinerer flere underordnede egenskaper i én. Her er de viktigste underordnede egenskapene:.
animation-name
-egenskapen: Spesifiserer navnet på animasjonen som skal brukes. Den må samsvare med navnet på animasjonen definert i@keyframes
.animation-duration
-egenskapen: Spesifiserer hvor lang tid animasjonen bruker på å fullføre én syklus. Tidsenhetene er sekunder (s
) eller millisekunder (ms
).animation-timing-function
-egenskapen: Spesifiserer hastighetskurven for animasjonen. Verdier somease
,linear
,ease-in
,ease-out
,ease-in-out
, osv. brukes.- Å spesifisere
ease
gjør at animasjonen starter sakte, akselererer og deretter senkes igjen på slutten. - Å spesifisere
linear
gjør at animasjonen beveger seg med konstant hastighet fra start til slutt. - Spesifiseringen av
ease-in
starter animasjonen sakte og avslutter raskt. - Spesifiseringen av
ease-out
starter animasjonen raskt og avslutter sakte. - Spesifiseringen av
ease-in-out
starter sakte, går videre raskt, og avslutter sakte.
- Å spesifisere
animation-delay
-egenskapen spesifiserer forsinkelsen før animasjonen starter. Tidsenheten er enten sekunder eller millisekunder.animation-iteration-count
-egenskapen spesifiserer hvor mange ganger animasjonen skal gjentas. Spesifiseringen avinfinite
vil gjenta animasjonen på ubestemt tid.animation-direction
-egenskapen spesifiserer avspillingsretningen til animasjonen. Alternativene inkluderernormal
(forover),reverse
(bakover),alternate
(spilles vekselvis), ogalternate-reverse
(spilles vekselvis med baklengs start).animation-fill-mode
-egenskapen spesifiserer tilstanden til animasjonen før den starter og etter den avslutter. Du kan spesifisere en avnone
,forwards
,backwards
, ellerboth
.animation-play-state
-egenskapen spesifiserer om animasjonen kjører eller er satt på pause. Du kan spesifisererunning
ellerpaused
.
Sammendrag
animation
-egenskapen er et kraftig verktøy for dynamisk å endre stilen til elementer. Ved å bruke @keyframes
kan du definere hvordan stiler endres over tid og kontrollere detaljert oppførsel av animasjonen med hver under-egenskap til animation
.
transition
-egenskap
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}
transition
-egenskapen brukes til å bruke animasjonseffekter på CSS-stilendringer. Den lar endringer vises jevnt under tilstandsbytter som hover
, focus
, active
, eller når stiler endres dynamisk av JavaScript.
La oss se på et eksempel med transition-box
-klassen der bakgrunnsfargen endres jevnt når musen holdes over en knapp.
- I transition-box
-klassen bruker transition
-egenskapen en 2-sekunders overgang på endringen av bakgrunnsfargen. Endringen spesifiseres som ease
, som gjør den jevn.
- hover
-pseudo-klassen endrer bakgrunnsfargen fra lightgray
til steelblue
når musen holdes over knappen. Denne endringen skjer jevnt over de 2 sekundene som er spesifisert i transition-box
-klassen.
Det er mulig å bruke transition
på flere egenskaper samtidig.
- I transition-2-properties
-klasse-eksempelet endres bakgrunnsfargen på 5 sekunder og bredden på 0,5 sekunder.
Grunnleggende Syntax
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
property
spesifiserer hvilke CSS-egenskaper animasjonen skal brukes på. Spesifisering avall
bruker animasjonen på alle egenskaper.duration
spesifiserer tiden det tar før animasjonen fullføres. Spesifiser ved å bruke sekunder (s
) eller millisekunder (ms
).timing-function
spesifiserer endringen i animasjonens hastighet. Du kan bruke alternativer somease
,linear
,ease-in
,ease-out
,ease-in-out
, osv.delay
spesifiserer forsinkelsestiden før animasjonen starter. Spesifiser i sekunder eller millisekunder.
Detaljerte egenskaper for transition
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
transition
kan også brukes som individuelle egenskaper som følger.
transition-property
: Spesifiserer egenskapen animasjonen brukes på.transition-duration
: Spesifiserer varigheten til animasjonen er fullført.transition-timing-function
: Spesifiserer progresjonshastigheten for animasjonen. Alternativer somease
,linear
,ease-in
,ease-out
,ease-in-out
kan brukes.transition-delay
: Spesifiserer forsinkelsestiden før animasjonen starter.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.