Proprietà CSS relative alle animazioni
Questo articolo spiega le proprietà CSS relative alle animazioni.
Puoi imparare l'uso e la sintassi delle proprietà @keyframes
, animation
e transition
.
YouTube Video
HTML per Anteprima
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>
Animazione e Transizione
Regola @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
è utilizzato nelle animazioni CSS per specificare come cambiano gli stili durante l'animazione. In @keyframes
, i cambiamenti di stile dall'inizio alla fine dell'animazione sono specificati da percentuali di tempo o parole chiave (from
e to
).
- Questo è un esempio di animazione in cui un elemento scorre da sinistra a destra e ritorna alla sua posizione originale.
- In questo esempio,
slide
è scritto dopo@keyframes
, definendo un'animazione chiamataslide
. 0%
è l'inizio dell'animazione, contranslateX(0)
che posiziona l'elemento nella sua posizione originale.50%
rappresenta la metà dell'animazione, dove l'elemento si sposta di 200px verso destra utilizzandotranslateX(200px)
.100%
è la fine dell'animazione, con l'elemento che ritorna alla sua posizione originale.- Nella classe
box-animation-slide
, la proprietàanimation
viene utilizzata per applicare l'animazioneslide
a intervalli di 3 secondi.
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}
- Puoi controllare in modo preciso gli stili durante un'animazione. Specificando percentuali, puoi applicare stili diversi a intervalli temporali arbitrari.
- In questo esempio, il colore cambia gradualmente da rosso a blu a verde a giallo e ritorna a rosso.
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}
- In questo esempio,
from
è equivalente a0%
eto
è equivalente a100%
. Questo ti consente di definire animazioni semplici.
Sintassi di Base
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
: Il nome dell'animazione. Questo viene specificato utilizzando la proprietàanimation
o la proprietàanimation-name
.- Percentuali o Parole chiave: Usa percentuali da
0%
a100%
, oppure le parole chiavefrom
(equivalente a0%
) eto
(equivalente a100%
).
Proprietà 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}
La proprietà animation
viene utilizzata per applicare animazioni a un elemento. Le animazioni definiscono come un set di stili CSS cambia nel tempo. Con la proprietà animation
, puoi controllare la tempistica, il comportamento, il ritardo, il numero di ripetizioni e altro ancora di un'animazione.
- La classe
box-animation-ease-in-out
specificaslide
comeanimation-name
e utilizza l'animazioneslide
definita in@keyframes
.3s
è laanimation-duration
, il che significa che ogni ciclo di animazione si completa in 3 secondi.ease-in-out
è laanimation-timing-function
, che fa iniziare l'animazione lentamente, accelera e poi rallenta di nuovo alla fine.infinite
è ilanimation-iteration-count
, il che significa che l'animazione si ripeterà all'infinito.
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}
- La classe
box-animation-alternate
specificacolor-change
comeanimation-name
e utilizza l'animazionecolor-change
definita in@keyframes
.1s
, che segueease-in-out
, è ilanimation-delay
, specifica il ritardo prima che inizi l'animazione. L'animazione inizierà dopo 1 secondo.3
, che segue1s
, è ilanimation-iteration-count
, significa che l'animazione si ripete 3 volte.alternate
è ilanimation-direction
, che specifica la direzione della riproduzione dell'animazione.alternate
specifica che l'animazione viene riprodotta in modo alternato.
Composizione della proprietà animation
.
La proprietà animation
è una proprietà abbreviata che combina diverse sotto-proprietà in una sola. Ecco le principali sotto-proprietà:.
- La proprietà
animation-name
: specifica il nome dell'animazione da applicare. Deve corrispondere al nome dell'animazione definita in@keyframes
. - La proprietà
animation-duration
: specifica il tempo necessario affinché l'animazione completi un ciclo. Le unità di tempo sono secondi (s
) o millisecondi (ms
). - La proprietà
animation-timing-function
: specifica la curva di velocità dell'animazione. Si utilizzano valori comeease
,linear
,ease-in
,ease-out
,ease-in-out
, ecc.- Specificando
ease
, l'animazione inizia lentamente, accelera e poi rallenta di nuovo alla fine. - Specificando
linear
, l'animazione progredisce a velocità costante dall'inizio alla fine. - Specificando
ease-in
l'animazione inizia lentamente e termina rapidamente. - Specificando
ease-out
l'animazione inizia rapidamente e termina lentamente. - Specificando
ease-in-out
l'animazione inizia lentamente, progredisce rapidamente e termina lentamente.
- Specificando
- La proprietà
animation-delay
specifica il ritardo prima che inizi l'animazione. L'unità di tempo è in secondi o millisecondi. - La proprietà
animation-iteration-count
specifica il numero di volte in cui l'animazione deve ripetersi. Specificandoinfinite
l'animazione si ripeterà indefinitamente. - La proprietà
animation-direction
specifica la direzione della riproduzione dell'animazione. Le opzioni includononormal
(direzione avanti),reverse
(direzione indietro),alternate
(riproduzione alternata) ealternate-reverse
(riproduzione alternata iniziando all'indietro). - La proprietà
animation-fill-mode
specifica lo stato dell'animazione prima che inizi e dopo che termina. È possibile specificare uno tranone
,forwards
,backwards
oboth
. - La proprietà
animation-play-state
specifica se l'animazione è in esecuzione o in pausa. È possibile specificarerunning
opaused
.
Riepilogo
La proprietà animation
è uno strumento potente per cambiare dinamicamente lo stile degli elementi. Utilizzando @keyframes
, è possibile definire come gli stili cambiano nel tempo e controllare il comportamento dettagliato dell'animazione con ogni sotto-proprietà di animation
.
Proprietà 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}
La proprietà transition
viene utilizzata per applicare effetti di animazione ai cambiamenti di stile CSS. Consente ai cambiamenti di avere un aspetto fluido durante i cambiamenti di stato come hover
, focus
, active
o quando gli stili vengono modificati dinamicamente tramite JavaScript.
Vediamo un esempio della classe transition-box
in cui il colore di sfondo cambia gradualmente quando si passa con il mouse su un pulsante.
- Nella classe transition-box
, la proprietà transition
applica una transizione di 2 secondi al cambiamento del colore di sfondo. Il cambiamento è specificato come ease
, rendendolo fluido.
- La pseudo-classe hover
cambia il colore di sfondo da lightgray
a steelblue
quando il mouse passa sopra il pulsante. Questo cambiamento avviene gradualmente nei 2 secondi specificati nella classe transition-box
.
È possibile applicare transition
a più proprietà contemporaneamente.
- Nell'esempio della classe transition-2-properties
, il colore di sfondo cambia in 5 secondi e la larghezza cambia in 0,5 secondi.
Sintassi di Base
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
property
specifica a quali proprietà CSS dovrebbe essere applicata l'animazione. Specificandoall
, l'animazione si applica a tutte le proprietà.duration
specifica il tempo necessario per completare l'animazione. Specificare utilizzando secondi (s
) o millisecondi (ms
).timing-function
specifica il cambiamento di velocità dell'animazione. Puoi usare opzioni comeease
,linear
,ease-in
,ease-out
,ease-in-out
, ecc.delay
specifica il tempo di attesa prima che inizi l'animazione. Specificare in secondi o millisecondi.
Proprietà dettagliate di transition
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
transition
può essere utilizzato anche come singole proprietà nel modo seguente.
transition-property
: Specifica la proprietà a cui si applica l'animazione.transition-duration
: Specifica la durata fino al completamento dell'animazione.transition-timing-function
: Specifica la velocità di progressione dell'animazione. Si possono usare opzioni comeease
,linear
,ease-in
,ease-out
,ease-in-out
.transition-delay
: Specifica il tempo di attesa prima che inizi l'animazione.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.