Oggi parleremo di due nuove funzioni introdotte con la specifica css3: le transizioni e le animazioni. Entrambe le proprietà sono ancora allo stato di working draft, ma mentre la prima è totalmente supportata dai browser sul mercato (internet explorer la implementerà nella versione 10), la seconda ha solo un supporto parziale (Firefox, Webkit, IE9+).
Queste nuove proprietà consentono finalmente di ottenere effetti grafici che prima era possibile ottenere solo attraverso javascript o qualche libreria come jQuery.
Le transizioni CSS3
Le prime che approfondiremo sono le transizioni, che permettono di effettuare la transizione dello sfondo di un menu o di un testo in modo graduale tra due colori scelti.
Ora spiegheremo i vari parametri:
- transition-property attraverso il quale si decide a quale proprietà applicare la transizione
- transition-duration che ne decide la durata
- transition-timing con cui si sceglie la modalità di transizione a scelta tra quelle predefinite :” ease, linear, ease-in, ease-out, ease-in-out, cubic-beizer(x1,y1,x2,y2)”
- transition-delay imposta l’attesa prima di avviare una nuova transizione.
Di seguito mostriamo l’ esempio pratico:
p {
-moz-transition-property: background-color, border;
-moz-transition-duration: 0.5s, 1s;
-moz-transition-timing-function: linear, ease-in;
-moz-transition-delay: 0.5s, 1s;
-webkit-transition-property: background-color, border;
-webkit-transition-duration: 0.5s, 1s;
-webkit-transition-timing-function: linear, ease-in;
-webkit-transition-delay: 0.5s, 1s;
-o-transition-property: background-color, border;
-o-transition-duration: 0.5s, 1s;
-o-transition-timing-function: linear, ease-in;
-o-transition-delay: 0.5s, 1s;
transition-property: background-color, border;
transition-duration: 0.5s, 1s;
transition-timing-function: linear, ease-in;
transition-delay: 0.5s, 1s;
}
p:hover{
-moz-transition-property: background-color, border;
-moz-transition-duration: 0.5s, 1s;
-moz-transition-timing-function: linear, ease-in;
-moz-transition-delay: 0.5s, 1s;
-webkit-transition-property: background-color, border;
-webkit-transition-duration: 0.5s, 1s;
-webkit-transition-timing-function: linear, ease-in;
-webkit-transition-delay: 0.5s, 1s;
-o-transition-property: background-color, border;
-o-transition-duration: 0.5s, 1s;
-o-transition-timing-function: linear, ease-in;
-o-transition-delay: 0.5s, 1s;
transition-property: background-color, border;
transition-duration: 0.5s, 1s;
transition-timing-function: linear, ease-in;
transition-delay: 0.5s, 1s;
}
Le animazioni CSS3
Adesso parleremo delle animazioni via css3, che sono una delle proprietà più innovative introdotte con questa specifica.
La prima cosa da fare è impostare la regola @keyframes seguita dal nome scelto per identificare tutta l’animazione e dove vengono inserirti tutti parametri dell’animazione. Per avviare e chiudere l’animazione si può scegliere tra la forma letterale “from e to” o o quella numerica “0% a 100%”.
Una volta impostato il tipo di animazione tramite @keyframes useremo le seguenti proprietà per impostare quale tag html usufrirà di tale animazione:
- animation-name richiamerà il keyframes prescelto
- animation-delay imposta il ritardo con cui far partire l’animazione
- animation-duration imposterà la durata
- animation-iteration-count decideremo quante volte si vorrà ripetere l’ animazione
- animation-direction si può decidere se la ripetizione dell’animazione deve ripartire dallo stato iniziale con il parametro normal o effettuare l’ animazione a percorso inverso per avere un andamento più fluido tramite il parametro alternate.
Di seguito mostriamo l’ esempio pratico:
div {
margin: 50px;
padding: 1em;
width: 400px;
border: thin dotted black;
font: bold 1.3em/1.3em arial, verdana, sans-serif;
cursor:pointer;
position: absolute;
-moz-animation: cinquecolori 6s 5s 3 alternate, slittamento 6s 5s 3 alternate;
-webkit-animation: cinquecolori 6s 5s 3 alternate, slittamento 6s 5s 3 alternate;
animation: cinquecolori 6s 5s 3 alternate, slittamento 6s 5s 3 alternate;
}
@-moz-keyframes cinquecolori {
from {
color: #3b86ca;
animation-timing-function: ease-out;
}
30% {
color: #337Fab;
animation-timing-function: linear;
}
60% {
color: #3b778c;
animation-timing-function: linear;
}
90% {
color: #67696b;
animation-timing-function: ease-in;
}
to {
color: #8e584b;
}
}
@-moz-keyframes slittamento {
from {
top: 50px;
animation-timing-function: ease-out;
}
25% {
top: 150px;
animation-timing-function: linear;
}
50% {
top: 200px;
animation-timing-function: linear;
}
75% {
top: 150px;
animation-timing-function: ease-in;
}
to {
top: 300px;
}
}
@-webkit-keyframes cinquecolori {
from {
color: #3b86ca;
animation-timing-function: ease-out;
}
30% {
color: #337Fab;
animation-timing-function: linear;
}
60% {
color: #3b778c;
animation-timing-function: linear;
}
90% {
color: #67696b;
animation-timing-function: ease-in;
}
to {
color: #8e584b;
}
}
@-webkit-keyframes slittamento {
from {
top: 50px;
animation-timing-function: ease-out;
}
25% {
top: 150px;
animation-timing-function: linear;
}
50% {
top: 200px;
animation-timing-function: linear;
}
75% {
top: 150px;
animation-timing-function: ease-in;
}
to {
top: 300px;
}
}
@keyframes cinquecolori {
from {
color: #3b86ca;
animation-timing-function: ease-out;
}
30% {
color: #337Fab;
animation-timing-function: linear;
}
60% {
color: #3b778c;
animation-timing-function: linear;
}
90% {
color: #67696b;
animation-timing-function: ease-in;
}
to {
color: #8e584b;
}
}
@keyframes slittamento {
from {
top: 50px;
animation-timing-function: ease-out;
}
25% {
top: 150px;
animation-timing-function: linear;
}
50% {
top: 200px;
animation-timing-function: linear;
}
75% {
top: 150px;
animation-timing-function: ease-in;
}
to {
top: 300px;
}
}
Naturalmente, essendo ancora allo stato di working draft, l’uso in produzione va valutato con molta attenzione senza abusare di queste nuove funzionalità.



