Sei qui: Homepage » css, web design » Animazioni e trasformazioni CSS
mar 02 2009
Qualche tempo fa la Apple ha presentato al CSS Working Group del W3C una proposta riguardante transizioni ed animazioni con i CSS. Il tutto è stato preso in considerazione ed inserito nel documento che mostra i progressi del gruppo.
Ma di cosa stiamo parlando? Sono novità interessanti e prioritarie o l’introduzione di queste proposte potrebbe aumentare la confusione?
Pur non essendo incluse nell’ultima proposta, le trasformazioni CSS sono comunque correlate. La proprietà transform consente infatti di spostare, ruotare o ridimensionare un elemento della pagina.
Questo modulo gestisce le transizioni tra pseudo-classi, come potrebbe essere il passaggio allo stato :hover di un link e viceversa. Per la transizione è possibile specificare un determinato periodo di tempo (transition-duration), il passaggio non sarà quindi istantaneo. Ad esempio un link potrebbe cambiare colore sfumando.
Se già con il modulo dedicato alle transizioni è possibile associare ad un oggetto dei brevi movimenti, con questo modulo si possono raggiungere risultati ancora più complessi.
Definendo gli eventi associati ad una determinata animazione, è possibile infatti indicare quali siano le proprietà che cambiano, il loro valore, e per quanto tempo.
Mi rendo conto che con queste novità sia facile fare confusione. Per chiarirsi le idee basta avere installato Safari: il browser Apple infatti supporta queste funzioni con dei comandi proprietari (con il prefisso -webkit-).
Per trasformazioni e transizioni questo è uno dei migliori esempi disponibili. Se invece volete vedere un’animazione CSS, la trovate in questa pagina, ma vi servirà una delle ultime nightly build di Safari (anche Safari 4 beta).
Siamo sicuri che queste novità siano positive per gli sviluppatori? Fino ad ora la parte interattiva di una pagina era gestibile con JavaScript (lasciamo da parte Flash): introdurre dei nuovi meccanismi di controllo direttamente nei CSS potrebbe generare diversi problemi.
Inutile dirlo, se già adesso ci sono problemi ad ottenere risultati equivalenti sui vari browser, occupandosi esclusivamente dell’aspetto visivo delle pagine, cosa succederà quando il discorso riguarderà anche l’interazione tra vari elementi? Queste proprietà saranno di fatto inutilizzabili, a meno che non si voglia ricorrere a JavaScript per ottenere risultati simili sui browser che non le supportano. Ma allora perchè non usare direttamente JavaScript?
Separando l’aspetto dell’interazione tra CSS e Javascript, si presenta un altro problema: l’interazione tra i due mondi. Non è possibile (al momento) intercettare un oggetto quando è nel mezzo di un’animazione CSS, ma nemmeno sapere se una transizione sia già avvenuta.
I problemi non mancano nemmeno per quanto riguarda l’accessibilità. Già adesso per uno screen reader non è facile sapere tutto ciò che succede in una pagina, soprattutto se certi script AJAX vengono realizzati senza seguire le specifiche. Introdurre altre complicazioni aumenterà inevitabilmente le difficoltà per alcune categorie di utenti.
Le possibilità offerte da trasformazioni, transizioni e animazioni CSS potrebbero essere interessanti, ma sarà bene valutarne pro e contro quando sarà il momento di utilizzarle. Il fatto che esista una determinata tecnologia, non significa che debba essere per forza utilizzata.
La tentazione potrebbe essere forte, perchè con poche righe di CSS sarà possibile animare facilmente gli elementi della pagina, ma la cosa migliore sarà continuare a gestire le interazioni esclusivamente con JavaScript, così come HTML e CSS sono riservati rispettivamente a contenuto e presentazione.
Hai trovato interessante questo post? Puoi leggere anche i seguenti articoli:
Classificato in css, web design. Puoi fare un trackback dal tuo sito.
TomStardust.com è realizzato secondo i canoni dell'accessibilità, le normative del W3C, e la legge Stanca, pur non essendo il sito di una pubblica amministrazione e non avendo nessun obbligo a riguardo.
Poter navigare su internet ed accedere alle informazioni sulla rete è un diritto di tutti, realizzare siti che rispondano agli standard web dovrebbe essere un dovere di ogni sviluppatore.
Questo sito e tutti i suoi contenuti, compresi i temi Wordpress, sono pubblicati sotto licenza Creative Commons 2.5.
Questo sito non rappresenta una testata giornalistica e viene aggiornato senza alcuna periodicità.
Powered by Wordpress
Credo che difficilmente sarà strappato lo scettro a Javascript.
Anche se questo non ci salverà comunque da utilizzi alquanto discutibili di tutte le nuove possibilità offerte, sono curiosissimo di osservare le solite sperimentazioni che in casi come questo nascono come funghi :P
Bah, ancora non si possono usare i CSS3, che già darebbe una bella mano agli sviluppatori, che senso ha una direzione già egregiamente coperta da js?
Sicuramente affidando le animazioni al CSS anziché a javascript si potrà aggirare l’ostacolo che alcune persone si auto-infliggono a favore della “sicurezza”, cioè disabilitare attraverso il browser l’esecuzione di comandi JS.
Come contro c’è l’obbligo di avere installato Webkit, di cui l’utente occasionale non avrà sicuramente mai sentito parlare…
Sono daccordo su tutto però un dubbio mi viene…insomma Apple non è scema da andarsi a schiantare contro un muro come la lotta a Javascript…e quindi l’unica soluzione che mi viene in mente è sponsorizzare questa tecnologia con il fine di farla diventare la soluzione ideale per le animazioni dei siti realizzati per iPhone…non trovate?
PS Tom, ti è arrivata l’intervista? :)
@Stefano: il tuo sospetto è giustificato, è molto probabile che queste novità interessino alla Apple soprattutto per iPhone e iPod Touch (sì, la mail è arrivata ;) ).
Quelle animazioni si vedono da dio anche con Google Chrome…
..non so come la pensiate voi, ma il webkit è potentissimo e non ho mai problemi di visualizzazione (l’unica cosa che FF rende meglio sono i bordi stondati), è davvero un peccato che per motivi di compatibilità non ci si possa sbizzarrire con chissà quale effettone.