Animazione CSS3 rende i siti web dinamici. Dà vita alle pagine web, migliorando l'esperienza dell'utente. A differenza delle transizioni CSS3, la creazione dell'animazione si basa su fotogrammi chiave, che consentono di riprodurre e ripetere automaticamente gli effetti per un periodo di tempo specificato, nonché di interrompere l'animazione all'interno del ciclo.
L'animazione CSS3 può essere applicata a quasi tutti gli elementi html, così come agli pseudo-elementi :before e :after. L'elenco delle proprietà animate è riportato nella pagina. Quando crei un'animazione, non dovresti dimenticare i possibili problemi di prestazioni, poiché la modifica di alcune proprietà richiede molte risorse.
Introduzione all'animazione CSS
Supporto del browser
CIOÈ: 10.0
Firefox: 16.0, 5.0 -moz-
Cromo: 43.0, 4.0 -webkit-
safari: 4.0 -webkit-
musica lirica: 12.1, 12.0 -o-
iOS Safari: 9, 7.1 -webkit-
Opera Mini: —
Browser Android: 44, 4.1 -webkit-
Chrome per Android: 44
1. Regola @keyframes
La creazione dell'animazione inizia con l'installazione personale chiave@regole dei fotogrammi chiave. I frame determinano quali proprietà verranno animate in quale passaggio. Ciascun frame può includere uno o più blocchi di dichiarazione di una o più coppie di proprietà e valori. La regola @keyframes contiene il nome dell'animazione dell'elemento, che collega la regola e il blocco di dichiarazione dell'elemento.
@keyframes shadow (da (text-shadow: 0 0 3px black;) 50% (text-shadow: 0 0 30px black;) a (text-shadow: 0 0 3px black;) )
I fotogrammi chiave vengono creati utilizzando le parole chiave da e verso (equivalenti a 0% e 100%) o punti percentuali, che possono essere impostati su qualsiasi numero. Puoi anche combinare parole chiave e punti percentuali. Se i frame hanno le stesse proprietà e valori, possono essere combinati in un'unica dichiarazione:
@keyframes sposta ( da, a ( in alto: 0; a sinistra: 0; ) 25%, 75% (in alto: 100%;) 50% (in alto: 50%;) )
Se non vengono specificati i frame 0% o 100%, il browser dell'utente li crea utilizzando i valori calcolati (impostati originariamente) della proprietà animata. Se due fotogrammi chiave hanno gli stessi selettori, il successivo sovrascriverà il precedente.
Dopo aver dichiarato la regola @keyframes, possiamo fare riferimento ad essa nella proprietà di animazione:
H1 (dimensione carattere: 3,5 em; colore: magenta scuro; animazione: ombra 2s infinito facilità in entrata;)
Non è consigliabile animare valori non numerici (con rare eccezioni), poiché il risultato nel browser può essere imprevedibile. Inoltre, non utilizzare i valori delle proprietà dei fotogrammi chiave che non hanno un punto medio, come i valori delle proprietà color: pink e color: #ffffff , width: auto e width: 100px o border-radius: 0 e border- raggio: 50% (in questo caso sarebbe corretto specificare border-radius: 0%).
2. Nome animazione nome-animazione
La proprietà specifica il nome dell'animazione. Il nome dell'animazione viene creato nella regola @keyframes. Si consiglia di utilizzare un nome che rifletta l'essenza dell'animazione e di utilizzare una o più parole collegate tra loro da uno spazio o da un trattino basso _ . La proprietà non è ereditata.
Sintassi
Div (nome animazione: mymove;)
3. Durata dell'animazione, durata dell'animazione
La proprietà imposta la durata dell'animazione, impostata in secondi o millisecondi, non sono ammessi valori negativi. Non ereditato. Se è impostata più di un'animazione per un elemento, puoi impostare un tempo diverso per ciascuno elencando i valori separati da virgole.
Sintassi
Div (durata animazione: 2s;)
4. funzione di temporizzazione dell'animazione
La proprietà determina la variazione di velocità dall'inizio alla fine dell'animazione utilizzando le funzioni di temporizzazione. Specificato utilizzando parole chiave o una curva di Bezier cubic-bezier(x1, y1, x2, y2) . Non ereditato.
funzione di temporizzazione dell'animazione | |
---|---|
I valori: | |
sollievo | La funzione predefinita, l'animazione si avvia lentamente, accelera rapidamente e rallenta alla fine. Corrisponde a cubic-bezier(0.25,0.1,0.25,1) . |
lineare | L'animazione avviene in modo uniforme per tutto il tempo, senza fluttuazioni di velocità. Corrisponde a cubic-bezier(0,0,1,1) . |
agio | L'animazione inizia lentamente e poi alla fine accelera gradualmente. Corrisponde a cubic-bezier(0.42,0,1,1) . |
facilità | L'animazione inizia rapidamente e rallenta lentamente alla fine. Corrisponde a cubic-bezier(0,0,0.58,1) . |
facilità d'ingresso | L'animazione inizia lentamente e finisce lentamente. Corrisponde a cubic-bezier(0.42,0,0.58,1) . |
cubicbezier(x1, y1, x2, y2) | Consente di impostare manualmente i valori da 0 a 1. È possibile costruire qualsiasi traiettoria della velocità di modifica dell'animazione. |
inizio passo | Imposta l'animazione passo dopo passo, suddividendo l'animazione in segmenti, le modifiche si verificano all'inizio di ogni passaggio. Equivalente ai passaggi(1, inizio) . |
fine del passo | Animazione passo passo, le modifiche si verificano alla fine di ogni passaggio. Equivalente a steps(1, end) . |
passi(numero di passi,inizio|fine) | Una funzione step time che accetta due parametri. Il numero di passi è dato come numero intero positivo. Il secondo parametro è facoltativo e specifica il punto in cui inizia l'animazione. Con un valore di inizio, l'animazione inizia all'inizio di ogni passaggio, con un valore di fine, alla fine di ogni passaggio, con un ritardo. Il ritardo viene calcolato come risultato della divisione del tempo di animazione per il numero di passaggi. Se il secondo parametro non è specificato, viene utilizzato il valore di default end. |
iniziale | Imposta il valore di una proprietà sul valore predefinito. |
ereditare | Eredita il valore della proprietà dall'elemento padre. |
Sintassi
Div (funzione animazione-tempo: lineare;)
L'animazione passo passo può essere utilizzata per creare effetti interessanti, come la digitazione di testo o un indicatore di caricamento.
5. Animazione con ritardo di animazione
La proprietà ignora l'animazione per il periodo di tempo specificato, il che rende possibile eseguire ciascuna animazione singolarmente. Un ritardo negativo avvia l'animazione da un certo punto all'interno del suo ciclo, ad es. dal tempo specificato nel ritardo. Ciò consente di applicare l'animazione a più elementi con uno sfasamento, modificando solo il tempo di ritardo.
Per far partire l'animazione da metà, è necessario impostare un ritardo negativo pari alla metà del tempo impostato in animation-duration . Non ereditato.
Sintassi
Div (ritardo animazione: 2s;)
6. Ripetizione dell'animazione, conteggio delle iterazioni
La proprietà consente di eseguire l'animazione più volte. Un valore pari a 0 o qualsiasi numero negativo rimuove l'animazione dalla riproduzione. Non ereditato.
Sintassi
Div(conteggio iterazioni-animazione: 3;)
7. Direzione dell'animazione direzione dell'animazione
La proprietà specifica la direzione in cui si ripeterà l'animazione. Se l'animazione si ripete solo una volta, questa proprietà non ha significato. Non ereditato.
Sintassi
Div (animazione-direzione: alternativa;)
8. Breve registrazione dell'animazione
Tutte le opzioni di riproduzione dell'animazione possono essere combinate in un'unica proprietà - animazione , elencandole separate da uno spazio:
Animazione: animazione-nome animazione-durata animazione-temporizzazione-funzione animazione-ritardo animazione-iterazione-conteggio animazione-direzione;
Per riprodurre l'animazione, è sufficiente specificare solo due proprietà - animation-name e animation-duration , il resto delle proprietà assumerà i valori predefiniti. L'ordine delle proprietà non ha importanza, l'unica cosa è che la durata dell'animazione deve precedere l'animazione-delay .
9. Riproduci lo stato di riproduzione dell'animazione
La proprietà controlla la riproduzione e l'arresto dell'animazione. L'arresto dell'animazione all'interno del ciclo è possibile tramite l'uso di questa proprietà nello script JavaScript. Puoi anche interrompere l'animazione quando passi il mouse sopra un oggetto — state:hover . Non ereditato.
Sintassi
Div:hover (animazione-stato di riproduzione: in pausa;)
10. Viene riprodotto lo stato dell'elemento prima e dopo l'animazione in modalità riempimento animazione
La proprietà determina l'ordine in cui gli stili definiti in @keyframes vengono applicati all'oggetto. Non ereditato.
modalità di riempimento dell'animazione | |
---|---|
I valori: | |
nessuno | Valore di default. Lo stato dell'elemento non cambia prima o dopo la riproduzione dell'animazione. |
avanti | Al termine dell'animazione (come determinato dal valore del conteggio delle iterazioni dell'animazione), l'animazione applicherà i valori della proprietà al termine dell'animazione. Se il conteggio delle iterazioni dell'animazione è maggiore di zero, vengono applicati i valori per la fine dell'ultima iterazione completata dell'animazione (anziché il valore per l'inizio dell'iterazione successiva). Se il conteggio delle iterazioni dell'animazione è zero, i valori applicati saranno quelli che avviano la prima iterazione (come la modalità riempimento animazione: indietro;). |
indietro | Per il periodo specificato con animation-delay , l'animazione applicherà i valori delle proprietà definiti sul fotogramma chiave, che avvierà la prima iterazione dell'animazione. Questi provengono dai valori dei fotogrammi chiave (quando direzione-animazione: normale o direzione-animazione: alternata) o da valori fotogramma chiave (quando direzione-animazione: inversa o direzione-animazione: alternata). |
L'animazione CSS3 è ampiamente utilizzata. È tempo anche per i costruttori di siti Web più inesperti di capire cos'è l'animazione CSS e come crearla. Potresti pensare che l'animazione CSS3 riguardi lo spostamento dei blocchi ed è come un cartone animato. Ma l'animazione CSS non riguarda solo lo spostamento di un elemento da un punto all'altro, ma anche la distorsione e altre trasformazioni. Per renderlo chiaro anche ai principianti, ho dipinto tutto passo dopo passo.
1. Proprietà di base dell'animazione CSS3
Un piccolo blocco teorico da cui capirete quali proprietà CSS3 sono responsabili dell'animazione, nonché quali valori possono assumere.
- nome-animazione- un nome univoco per l'animazione (fotogrammi chiave, ne parleremo un po' più avanti).
- durata dell'animazione— durata dell'animazione in secondi.
- funzione di temporizzazione dell'animazione— Curva di velocità dell'animazione. A prima vista, è molto incomprensibile. È sempre più facile mostrare con un esempio e li vedrai di seguito. Può assumere i seguenti valori: lineare | facilità | agio | spensieratezza | cubic-bezier(n,n,n,n) .
- animazione-ritardo— ritardo in secondi prima dell'inizio dell'animazione.
- conteggio delle iterazioni dell'animazione- il numero di ripetizioni dell'animazione. È impostato come numero semplice oppure puoi specificare infinito e l'animazione verrà eseguita a tempo indeterminato.
Qui ci sono solo le proprietà di base, che sono più che sufficienti per creare la tua prima animazione CSS3.
L'ultima cosa che dobbiamo sapere e capire dalla teoria è come creare fotogrammi chiave. Anche questo è facile da fare e viene eseguito utilizzando la regola @keyframes, all'interno della quale sono specificati i fotogrammi chiave. La sintassi di questa regola è:
Sopra impostiamo il primo e l'ultimo fotogramma. Tutti gli stati intermedi verranno calcolati AUTOMATICAMENTE!
2. Esempio di animazione CSS3 reale
La teoria, come al solito, è noiosa e non sempre chiara. È molto più facile vedere tutto su un esempio reale, ma è meglio farlo da soli su una pagina HTML di prova.
Quando imparano un linguaggio di programmazione, di solito scrivono un programma "Hello, world!", con il quale puoi capire quale sintassi ha questo linguaggio e alcune altre cose di base. Ma non stiamo studiando un linguaggio di programmazione, ma un linguaggio per descrivere l'aspetto di un documento. Pertanto, avremo il nostro "Hello, world!".
Ecco cosa faremo per un esempio: facciamo un po' di blocco Tutto sembra essere chiaro: devi solo comprimere il blocco Innanzitutto, il markup HTML. È molto semplice perché stiamo lavorando solo con un elemento nella pagina. Ed ecco cosa c'è nel file di stile: Come puoi vedere, abbiamo specificato solo il primo e l'ultimo fotogramma chiave e tutti quelli intermedi sono stati "costruiti" automaticamente. Ecco la tua prima animazione CSS3. Per consolidare le conoscenze acquisite, creare un documento HTML e un file CSS, e inserire (o meglio, digitare a mano) il codice dell'esempio lì. Allora capirai sicuramente tutto. Quindi prova a fare lo stesso con l'altezza del blocco (dovrebbe diminuire in altezza) per ancorare il materiale. Sopra, hai imparato quanto sia facile creare animazioni CSS3. Se hai provato a farlo da solo, hai già capito l'intero processo e ora vuoi sapere come creare un'animazione più complessa e bella. E può davvero essere creato. Di seguito ci sono 3 lezioni in cui l'animazione viene creata allo stesso modo dell'esempio sopra. 3 lezioni di animazione CSS (trasformazioni) Le lezioni ti aiuteranno a capire ancora meglio l'animazione CSS. La cosa principale è provare a ripetere ciò che vedi nelle lezioni. O almeno prova a cambiare i valori delle proprietà e guarda cosa succede, poi diventerai meno spaventato dai CSS. L'abbiamo visto di recente transizioni- è solo un modo animazioni proprietà di stile da iniziale prima di finale stati. Quindi lo sono le transizioni in CSS specifico tipo di animazione, dove: Ma cosa succede se vuoi: L'animazione in CSS consente tutto questo e molto altro. Un'animazione è come un mini-film in cui tu, come regista, dai istruzioni (regole di stile) ai tuoi attori (elementi HTML) per scene diverse (fotogrammi chiave). Come la transizione , la proprietà dell'animazione è abbreviato per pochi altri: Per animare il pulsante di download, puoi scrivere un'animazione rimbalzare: @keyframes bouncing( 0% (in basso: 0; box-shadow: 0 0 5px rgba(0,0,0,0.5); ) 100% (in basso: 50px; box-shadow: 0 50px 50px rgba(0,0, 0,0.1); ) ) .loading-button ( animazione: rimbalzo di 0.5s cubic-bezier(0.1,0.25,0.1,1) 0s infinito si alternano entrambi;) Per prima cosa dobbiamo scrivere l'effettiva animazione di rimbalzo usando @keyframes e nominarla . ero solito abbreviato proprietà di animazione e includeva tutte le opzioni possibili: Prima di applicare l'animazione agli elementi HTML, è necessario scrivere l'animazione usando i fotogrammi chiave. In generale, i fotogrammi chiave sono ciascuno passaggio intermedio nell'animazione. Sono definiti mediante percentuali: Puoi anche utilizzare le parole chiave da e verso invece di 0% e 100% rispettivamente. Puoi definire tutti i fotogrammi chiave che desideri, ad esempio 33%, 4% o anche 29,86%. In pratica ne scriverai solo alcuni. Ogni fotogramma chiave lo è regola CSS, il che significa che puoi scrivere le proprietà CSS come al solito. Per definire un'animazione, scrivi semplicemente la parola chiave @keyframes con essa nome: @keyframes around ( 0% ( a sinistra: 0; in alto: 0; ) 25% ( a sinistra: 240px; in alto: 0; ) 50% ( a sinistra: 240px; in alto: 140px; ) 75% ( a sinistra: 0; in alto: 140px ; ) 100% ( a sinistra: 0; in alto: 0; ) ) p ( animazione: circa 4s lineare infinito; ) Si noti che l'inizio 0% e la fine 100% contengono le stesse regole CSS. Ciò garantisce che l'animazione si ripeta perfettamente. Poiché il contatore di iterazioni è impostato su infinito, l'animazione passerà da 0% a 100% e quindi immediatamente indietro allo 0% e così via all'infinito. Nome almeno viene utilizzata l'animazione due volte: Come i nomi delle classi CSS, i nomi delle animazioni possono includere solo: Il nome non può iniziare con un numero o due trattini. Come la durata della transizione, la durata dell'animazione può essere impostata su secondi(1s) o millisecondi(200 ms). Selettore ( durata animazione: 0,5 s; ) Il valore predefinito è 0s, il che significa nessuna animazione. Simile alle funzioni di temporizzazione per le transizioni, possono essere utilizzate le funzioni di temporizzazione per l'animazione parole chiave, come linear , easy-out o può essere definito con arbitrario curve di Bézier. Selettore (funzione di temporizzazione dell'animazione: facilità-in-uscita; ) Valore predefinito: facilità . Poiché l'animazione in CSS utilizza i fotogrammi chiave, puoi impostare lineare funzione del tempo e simulare specifica curva di Bezier definendo molti molto specifici fotogrammi chiave. Dai un'occhiata a Bounce.js per animazioni all'avanguardia. Come per il ritardo di transizione, è possibile impostare il ritardo dell'animazione su secondi(1s) o millisecondi(200 ms). Il valore predefinito è 0s, il che significa nessun ritardo. Utile quando si includono più animazioni in serie. A, .b, .c ( animazione: rimbalzo di 1 s; ) .b ( animazione-ritardo: 0,25 s; ) .c ( animazione-ritardo: 0,5 s; ) Per impostazione predefinita, viene riprodotta solo l'animazione una volta(valore 1). È possibile impostare tre tipi di valori: La proprietà di direzione dell'animazione definisce in che ordine vengono letti i fotogrammi chiave. Questo è più facile da immaginare se il contatore di iterazioni dell'animazione è impostato su infinite . La proprietà animation-fill-mode determina cosa succede davanti inizio animazione e dopo il suo completamento. Quando si determina personale chiave puoi specificare regole CSS, che verrà applicato in diversi passaggi dell'animazione. Ora queste regole CSS possono viso con coloro che già applicato agli elementi animati. animation-fill-mode ti consente di dire al browser se stili di animazione anche dovrebbe applicarsi al di fuori dell'animazione. Immaginiamo pulsante, che è: Ciao cari lettori. In questo giorno, parliamo di una cosa piuttosto interessante come l'animazione CSS. Cioè, questa animazione di elementi viene eseguita solo con l'aiuto di stili e qui non vengono utilizzati script. Come puoi vedere, qui c'è un attributo : passa il mouse, che cambia lo stile di sfondo al passaggio del mouse, in alcuni esempi dovrebbe essere obbligatorio. imbottitura: 10px rientro testo: 0px; #scatola1 : passa il mouse { Come puoi vedere, abbiamo ottenuto una tale animazione usando l'attributo transizione. Qui puoi modificare la velocità dell'animazione in secondi, in questo caso ci vogliono 0,8 secondi prima che il colore cambi completamente al passaggio del mouse e 0,1 secondi prima che l'animazione venga attivata dopo aver spostato il mouse e aver rimosso il cursore. (Scusa per il puzzle :-)) Questo valore può essere modificato secondo necessità. Il colore di sfondo al passaggio del mouse è impostato dall'attributo : passa il mouse, qui è obbligatorio, altrimenti l'animazione non funzionerà. imbottitura: 10px rientro testo: 0px; #scatola2 : passa il mouse { In questo esempio, abbiamo ottenuto un ridimensionamento uniforme del blocco al passaggio del mouse. Il valore predefinito è 200 per 100 e il valore al passaggio del mouse è 150 per 50, che è impostato dall'attributo : passa il mouse. Qui puoi anche cambiare il blocco solo in larghezza o altezza, devi solo farlo : passa il mouse eliminare larghezza:- il blocco cambia solo in altezza, altezza:— il blocco cambia solo in larghezza. Puoi anche modificare il tasso di cambio. In questo caso è 1s. imbottitura: 10px rientro testo: 0px; #box3:passa il mouse( Il twist è fatto trasformare e transizione. In questo caso, l'oggetto ruota in senso orario di 360 gradi alla velocità di un secondo. Se vuoi che il blocco ruoti in senso antiorario, trasformare il valore deve essere impostato su - (meno). Naturalmente, il grado di turnover può essere modificato. rientro testo: 0px; #box4:passa il mouse( In questo esempio, il blocco viene gradualmente aumentato di 2 volte. Questo valore è impostato trasforma: scala(2). Se si imposta il valore su 1,5, il blocco verrà ingrandito di 1,5 volte. Allo stesso modo, puoi ridurre le dimensioni blocco, ad esempio, impostare il valore su 0,5. #scatola5 ( rientro testo: 0px; #box5:passa il mouse( Qui lo spostamento è espresso in pixel. In questo caso (0,50px). Puoi anche forzare il blocco a salire con questo valore di 0,-50px. O diagonalmente verso il basso di 50px,50px. In una parola, il blocco può essere spostato ovunque. Questo è fondamentalmente tutto ciò che volevo dire. No, non tutti :-) Ho dimenticato di ricordarti che questa animazione CSS può essere applicata a qualsiasi oggetto del sito: immagini, testo, intestazioni, icone, ecc. Per i link un viraggio uniforme è perfetto, secondo me è molto bello. :-) Eppure, queste informazioni sono state condivise con noi dal sito shpargalkablog.ru. Per il quale molte grazie a lui. Adesso è tutto sicuro :-) A presto, amici. Ciao a tutti. Recentemente mi sono imbattuto in una serie di video tutorial molto utili e interessanti sull'argomento " Animazione CSS". Ma questa è sfortuna, tutti i video erano in inglese e, probabilmente, non tutti i designer di layout conoscono l'inglese a un livello sufficiente per capire e assimilare tutte le informazioni necessarie. Pertanto, ho deciso di tradurre queste lezioni per te (più precisamente, per fare una traduzione gratuita). Non c'è bisogno di ringraziare. Così:
Prima di dirti come fare le animazioni CSS e perché sono necessarie, vorrei iniziare spiegandoti, che è successoAnimazione CSS, definire qualcosa. Le animazioni sul web hanno due idee principali. La prima idea è far rivivere qualcosa. Sei come il dottor Frankenstein. Hai un mostro senza vita e gli dai vita. Secondo - visualizzazione del movimento. E la parola chiave qui è “movimento”. Ci sono due strumenti principali nei CSS con i quali possiamo spostare gli elementi in una pagina web. Il primo (di cui parleremo più avanti oggi) è la proprietà transizione. Prima di tutto, è con il suo aiuto che creiamo animazioni in CSS. Il secondo strumento è la proprietà animazione abbinata a fotogrammi chiave(@fotogrammi chiave - fotogrammi chiave). Tratteremo questo strumento in modo più dettagliato nel prossimo tutorial, ma ora daremo un'occhiata alla proprietà di transizione CSS. E poi parleremo di cosa animare nella pagina (quando l'utente ne ha bisogno) e cosa non animare (quando l'animazione sembra stupida e inappropriata), in base all'esperienza dell'utente (UX - user experience). Per prima cosa, vediamo come viene letta questa proprietà e comprendiamo la sua sintassi. Scriviamo questa proprietà in questo modo: transizione: [proprietà] [durata] [funzione di temporizzazione] [ritardo] ; transizione: altezza 1s allentamento 0,2s ; Assegniamo questa proprietà all'elemento che vogliamo animare. Questo articolo diventa liscio transizione(o fare un passo) tra diversi dei suoi stati (ad es. altezza 100px e altezza 200px). E come sarà questo transizione(dalla transizione inglese), dipenderà dai parametri che abbiamo impostato per esso. Il primo parametro (valore) della proprietà di transizione è un altro proprietà elemento animato (ad esempio, altezza). Il secondo parametro è la durata (durata) dell'animazione, ovvero quanto tempo impiegherà l'elemento per passare da uno stato all'altro (ad esempio, 2s o 2000ms). Il terzo parametro è funzione di temporizzazione [tempismofunzione] (funzione di allentamento [ allentamentofunzione]). Come si distribuisce l'intensità dell'animazione nel tempo. Ad esempio, un'animazione potrebbe iniziare bruscamente, quindi rallentare e terminare la transizione senza intoppi alla fine. Può essere utilizzato come parole chiave (ad esempio sollievo,sollievo-in-fuori,lineare) e le funzioni del cubo di Bezier (ad esempio, cubo-bezier(0.17, 0.67, 0.83, 0.67)). Puoi impostare facilmente e comodamente un cubo Bezier su questa risorsa http://cubic-bezier.com , così come la funzione passi per creare un'animazione fotogramma per fotogramma (passo dopo passo). E infine, il parametro ritardo. Il ritardo dell'animazione è la quantità di tempo che occorre attendere prima che l'animazione (nel nostro caso, la transizione) inizi. Diamo un'occhiata a questo esempio di animazione CSS: transizione: opacità 300 ms facilità in entrata e uscita 1s; Qui animiamo solo la proprietà opacità(opacità). Ciò significa che se l'elemento che andremo ad animare ha altre proprietà, come altezza, larghezza o colore, e anche se queste proprietà differiscono nei diversi stati dell'elemento, solo la proprietà opacità avrà una transizione graduale (animazione) . Capisci? Al posto di una proprietà specifica, puoi anche utilizzare la parola chiave " tutto". Ciò significa che animiamo assolutamente tutte le proprietà dell'elemento che sono state modificate nel nuovo stato dell'elemento (non solo l'opacità) e che possono essere animate. Perché, come sai, non tutte le proprietà possono essere animate. Ma ne parleremo più avanti. Il secondo parametro ( 300
SM) ci dice che l'animazione durerà solo 300 millisecondi. Cioè, l'elemento apparirà rapidamente o si dissolverà rapidamente, a seconda dei valori delle proprietà nei suoi due stati. Funzione di temporizzazione ( sollievo-in-fuori) poiché il terzo parametro renderà l'inizio e la fine dell'animazione più fluidi. Ritardo ( 1
S) indica quanto deve essere in ritardo l'animazione prima che si attivi. In generale, questa è la formula per come registreremo l'animazione di transizione. Questa è la sintassi. Puoi, se non altro, aggiungere più di una transizione [proprietà] per un elemento. Ad esempio, puoi animare i cambiamenti nell'altezza e nella larghezza di un elemento con parametri diversi. Per fare ciò, nella proprietà di transizione, invece di un punto e virgola alla fine, basta inserire una virgola e scrivere i parametri per un'altra proprietà. E non dimenticare di mettere un punto e virgola alla fine in seguito per farlo funzionare. Finora abbiamo discusso solo della sintassi della proprietà di transizione. Ora parliamo delle proprietà, quali possiamo animare e quali no. Perché ci sono alcune cose che semplicemente non hanno senso da animare e alcune proprietà semplicemente non possono essere animate. Prendi, ad esempio, proprietà come: Ovviamente, ha senso animare queste proprietà. Se modifichi i loro valori, cambierà visivamente l'elemento. Se modifichi la dimensione del carattere da, ad esempio, 14px a 28px, vedrai che il carattere aumenta gradualmente e c'è un'animazione che dura per un po'. L'animazione ha sempre senso se il valore delle proprietà è un valore chiaro (il più delle volte numerico). Se aumenti la dimensione del carattere a 100px, vedrai chiaramente le lettere crescere. Si può anche osservare un cambiamento graduale nel colore di sfondo [perché il colore sul web ha un codice numerico, ad esempio rosso RGB(255,0,0)]. Queste proprietà sono animate. In generale, ricorda, se immagini che sia animato, allora può essere animato. La maggior parte delle volte questo funziona. Ed ecco un elenco di proprietà che non possono essere animate (esempio): Questi sono alcuni che ho preso come esempio in modo da poter avere un'idea della differenza tra le proprietà CSS animate e non animate. Mettiti in mostra. Riesci a immaginare come il cambiamento tra " Schermo:bloccare;" e " Schermo:in linea-bloccare;"? Come può l'aspetto di un elemento cambiare dolcemente tra " posizione:parente;" e " posizione:assoluto;"? No, ovviamente l'elemento avrà un aspetto diverso quando queste proprietà vengono modificate. Ma come puoi immaginare transizione? Non puoi farlo. Destra? Non puoi immaginare il carattere che gira Helvetica in carattere Georgia, ogni lettera, semplicemente non funzionerà. Puoi modificare questi caratteri, ma cambieranno bruscamente, non si verificherà alcuna animazione. In generale, molte proprietà si animano, ma altre no. Ora decidiamo quali delle proprietà animate sono migliori per l'animazione e quali sono peggiori. Si tratta di prestazioni. Abbiamo toccato il tema delle prestazioni perché le animazioni richiedono molte risorse. In generale, ecco le cose che sono più adatte per l'animazione: Inoltre, i primi tre elementi di questo elenco sono tutti parametri della proprietà di trasformazione (traduci, ridimensiona, ruota). Il posizionamento avviene lungo gli assi X e Y. Se decidi di animare qualcos'altro, corri il rischio di non ottenere una transizione fluida e fluida a 60 fps. Paul Lewis e irlandese
E questo è esattamente ciò che ci interessa quando parliamo di performance di animazione. In generale, le proprietà più adatte per l'animazione sono trasformare eopacità. Quando si anima qualsiasi altra cosa, gli fps dell'animazione possono scendere ben al di sotto di 60 fps. Riassumiamo questo punto come segue. Cerca di evitare di ridisegnare elementi sulla pagina Web e di animare elementi difficili da renderizzare per il browser (come le ombre). Ora scopriamo come avviare l'animazione. Cosa è necessario fare per rendere animato l'elemento. In altre parole, come fare animazionecss. Non è difficile e ci sono molti modi diversi per farlo. Ma ce ne sono 2 principali che devi padroneggiare senza fallo. Il primo modo è animazione al passaggio del mouse dell'elemento(pseudo-classe: passaggio del mouse). Passa il mouse su un elemento e l'animazione viene attivata. In questo modo puoi animare l'elemento stesso o uno qualsiasi dei suoi elementi figlio. Poi ti mostrerò come funziona. Il secondo modo è cambiare la classe di un elemento. Cioè, hai un elemento ordinario, cambi (o aggiungi) la sua classe a una classe che ha stili completamente diversi. Se aggiungi una classe, l'animazione si verificherà e se rimuovi la classe, l'animazione verrà invertita. Questo è un buon modo per animare menu o menu a discesa. Abbiamo coperto tutto ciò di cui abbiamo bisogno per creare animazioni CSS pure. Molto presto analizzeremo esempi pratici e, poco dopo, esempi molto interessanti. Hai letto fino alla fine? questo articolo è stato utile? Non proprio Cosa non ti è piaciuto esattamente? L'articolo era incompleto o non veritiero? 1
<div class="toSmallWidth">
div
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.toSmallWidth (margine: 20px auto; /* margini superiore e inferiore di 20px e allineamento centrale */ sfondo: rosso /*sfondo rosso per il blocco*/ altezza: 100px; /*altezza blocco 100px*/ larghezza: 800px /*larghezza iniziale 800px*/-nome-animazione-webkit: animWidthSitehere; -webkit-animazione-durata: 5s; /* proprietà con prefisso per browser Chrome, Safari, Opera */ nome-animazione : animWidthSitehere; /* specifica il nome dei fotogrammi chiave (situati sotto) */ animazione-durata: 5s /*imposta la durata dell'animazione*/
}
/* fotogrammi chiave prefissi per browser Chrome, Safari, Opera */
@-webkit-keyframes animWidthSitehere( da (larghezza: 800px;) a (larghezza: 100px;)) @keyframes animWidthSitehere( da (larghezza: 800px;) /*primo fotogramma chiave in cui la larghezza del blocco è 800px*/ a (larghezza: 100px;) /*ultimo fotogramma chiave in cui la larghezza del blocco è 100px*/
}
3. Esempi di animazione CSS3 più avanzati
Proprietà di animazione
Esempio veloce
@fotogrammi chiave
nome-animazione
@keyframes qualunque ( /* ... */ ) .selector ( animation-name: qualunque; ) durata dell'animazione
funzione di temporizzazione dell'animazione
animazione-ritardo
conteggio delle iterazioni dell'animazione
.selector ( conteggio-iterazione-animazione: infinito; ) direzione dell'animazione
modalità di riempimento dell'animazione
Cambia uniformemente il colore di un elemento al passaggio del mouse usando la transizione
#scatola1 (
margine inferiore: 5px;
colore di sfondo: #ccc;
allineamento testo: centro;
larghezza: 200px
altezza: 100px;
bordo: 1px solido #888;
-transizione moz: colore di sfondo 0,8 s 0,1 s facilità;
-o-transizione: colore di sfondo 0,8 s 0,1 s facilità;
-transizione webkit: colore di sfondo 0.8s 0.1s facilità;
cursore: puntatore;)
colore di sfondo: #97CE68;
colore: #333;
}Ridimensionamento di un elemento
#scatola2 (
margine inferiore: 5px;
colore di sfondo: #ccc;
colore: #333;
allineamento testo: centro;
larghezza: 200px
altezza: 100px;
bordo: 1px solido #888;
-moz-transizione: tutti gli 1 s lineari;
-o-transizione: tutti gli 1s lineari;
-transizione webkit: tutti gli 1s lineari;
cursore: puntatore;)
colore di sfondo: #97CE68;
colore: #000;
larghezza: 150px
altezza: 50px;
}Torsione dell'oggetto
#scatola3 (
margine inferiore: 5px;
colore di sfondo: #ccc;
colore: #333;
allineamento testo: centro;
larghezza: 200px
altezza: 100px;
bordo: 1px solido #888;
-moz-transizione: tutti gli 1s 0.1s facilitano;
-o-transizione: tutti 1s 0.1s accomodamento;
-transizione webkit: tutti gli 1s 0.1s facilitano;
cursore: puntatore;)
colore di sfondo: #97CE68;
colore: #000;
-trasformazione webkit: ruota (360 gradi);
-moz-trasforma: ruota (360 gradi);
-o-trasforma: ruota (360 gradi);
}Ingrandimento e riduzione fluidi di un oggetto
#scatola4 (
margine inferiore: 5px;
colore di sfondo: #ccc;
colore: #333;
imbottitura: 10px
allineamento testo: centro;
larghezza: 200px
altezza: 100px;
bordo: 1px solido #888;
-moz-transition: allentamento di tutti i 3 secondi;
-o-transizione: allentamento di tutti i 3 secondi;
-transizione-webkit: tutti e 3 i allentamenti;
cursore: puntatore;)
colore di sfondo: #97CE68;
colore: #000;
-webkit-transform: scale(2);
-moz-transform:scale(2);
-o-transform:scale(2);
}Spostamento graduale del blocco verso il basso
margine inferiore: 5px;
colore di sfondo: #ccc;
colore: #333;
imbottitura: 10px
allineamento testo: centro;
larghezza: 200px
altezza: 100px;
bordo: 1px solido #888;
-moz-transition: tutti gli 1 secondi di facilità in entrata;
-o-transizione: tutti gli 1 secondi di facilità in entrata e uscita;
-transizione-webkit: tutti gli 1 secondi sono facilmente entrati e usciti;
cursore: puntatore;)
colore di sfondo: #97CE68;
colore: #000;
-trasformazione-webkit: translate(0.50px);
-moz-transform: translate(0.50px);
-o-transform: translate(0,50px);
}Che cos'è l'animazione CSS?
Come animare?
Proprietà di transizione CSS - opzioni e valori
Sintassi
Esempio di animazione di transizione CSS
Cosa può essere animato in CSS?
Proprietà animate
Proprietà che non sono animate
Performance di animazione in CSS
Come creare animazioni in CSS?
Epilogo
Scrivi nei commenti e ti promettiamo di migliorare!