Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Animazioni CSS3 complesse con Alice.js

Sviluppare complesse animazioni CSS3 con semplici funzioni Javascript di Alice.js
Sviluppare complesse animazioni CSS3 con semplici funzioni Javascript di Alice.js
Link copiato negli appunti

Alice.js è una micro libreria JavaScript realizzata da Laurent Hasson e Jim Ing per la produzione di effetti visivi di impatto, risulta molto utile specie nella realizzazione di interfacce utente ricche di interazione.

Alice.js permette di compilare codice CSS per creare rapidamente animazioni CSS3 complesse, inoltre supporta l'accelerazione hardware nei moderni browser. Il progetto viene distribuito sotto licenza Apache 2.0 e, a differenza di quanto accade per prodotti simili, non è dipendente da alcuna libreria esterna ma fondata esclusivamente su file Javascript in un'unica cartella, senza immagini, CSS o altre dipendenze.

La libreria è stata progettata in modo estremamente modulare, per poterla utilizzare occorre includere il core ed i singoli moduli dedicati ai vari effetti. Alice.js non è legata alla gestione degli eventi (touch o mouse), n´ cerca di imporre una logica particolare o elementi di layout.

Grazie a queste caratteristiche è possibile integrarla in altre librerie, come ad esempio per animare un componente Dojo o jQuery, lavorando semplicemente sul rendering del componente applicando ad esso uno stile.

Nota: Alice.js al momento supporta solamente browser basati su Web Kit (es. Chrome e Safari)

Un esempio pratico: effetto 'Wobble'

<div id="DIV1">Esempio 1</div>
<img id="IMG1" src="/myimg.gif">
<script src="/alice/alice.core.js"></script> // include il core della libreria
<script src="/alice/alice.wobble.js"></script> // include lo script per l'animazione
/* Applica lo stile wobble */
<script>
    alice.wobble(["DIV1", "IMG1"], 20, 5, "top-left", 1000, 10, "ease-in-out", -1);
</script>

Abbiamo utilizzato l'effetto Wobble su un div e un'immagine, senza modificare il markup del layout, semplicemente lanciando la funzione wobble con i parametri:

Parametro Descrizione
["DIV1", "IMG1"] Array JSON di oggetti a cui apporre l'animazione
"20" L'angolo di rotazione in gradi
"5" Valore di casualità (in percentuale) della rotazione (in realtà, la rotazione sarà tra 19 e 21 (circa il 5%)
"top-left" anchor point dell'animazione (consentiti: "top-left", "top-center", "top-right", "center" oppure direttamente le coordinate x, y)
"1000" Durata effetto animazione in millisecondi
"10" Valore di casualità (in percentuale) applicato alla durata (in realtà, la durata sarà tra 900 e 1100 (circa il 10%)
"ease-in-out" funzione di andamento dell'animazione (in rapporto standard specifiche CSS)
"-1" Il numero di iterazioni, (-1 per infinito)

Bounce

L'effetto "bounce" simula il rimbalzo di un oggetto sullo schermo visto dall'alto, creando anche un'ombra di rilievo

alice.bounce({ id: "my_image" // oggetto a cui applicare l'effetto
             });

Toss

L'effetto "toss" simula il movimento del lancio di un frisbee. Tra le proprietà possiamo impostare la durata, il numero di iterazioni e la direzione di ritorno:

alice.toss({ id: "my_image",
             duration: 2000,
			 iteration: 'infinite'
		   });

Spring

L'animazione "spring" mostra l'effetto elasticità di una molla in caduta, rimbalzando sullo schermo come una pallina. È possibile agire sulla configurazione di questo effetto per impostare un numero maggiore o minore di elasticità regolando il numero di rimbalzi:

alice.spring({ id: "my_image",
               width: 96,
			   height: 96,
			   drop_height: 190, // altezza della caduta
			   elasticity: 0.56, // valore elasticità
			   iteration: 'infinite'
			 });

Fade

L'effetto "fade" crea un effetto di dissolvenza sull'elemento specifico. Il valore della proprietà duration determina il tempo impiegato dall'oggetto nell'abbandonare la visuale:

alice.fade2({ id: "my_fade",
              duration: 3.0,
			  iteration: 'infinite'
			});

Rotate

L'effetto "rotate" esegue la rotazione di un div cui applicato. Impostando il valore di alcuni parametri è possibile simulare il movimento di un pendolo:

alice.rotate("my_image", "45",
             {
			   origin: "50% 0%",
			   timing: 1000,
			   iteration: 'infinite',
			   direction: 'alternate', // direzione effetto
			   easing: 'cubic-bezier(0.33333,0.6667,0.66667,1)' //valori rimbalzo
			 });

Altri effetti

Molte altre sofisticate animazioni sono ancora in fase di sviluppo ma vale la pena elencare le più significative:

Animazione Descrizione
carousel permette di visualizzare un numero da 2 a 30 div su pannelli adiacenti, sino a formare un poligono in prospettiva, creando una image-gallery di forte impatto visivo
cube con i div selezionati crea un cubo che può essere ruotato al click del mouse o da tastiera
page flip simula l'effetto di sfogliare le pagine di un libro
fold effetto fisarmonica
flip visualizza una successione di immagini in sequenza

Conclusioni

Alice.js è un progetto in forte crescita, supportato da un team di esperti che ha realizzato un lavoro degno di nota. Creare sofisticate animazioni senza implementare logiche già esistenti, permette di integrare questa libreria in qualsiasi progetto.

Link utili

Ti consigliamo anche