Quindi, ho capito come eseguire sia le transizioni CSS3 che le animazioni. Ciò che non è chiaro, e ho cercato su Google, è quando usare quale.CSS: animazione vs transizione
Ad esempio, se voglio fare un rimbalzo della palla, è chiaro che l'animazione è la strada da percorrere. Potrei fornire fotogrammi chiave e il browser farebbe i fotogrammi intermedi e avrò una bella animazione in corso.
Tuttavia, ci sono casi in cui un determinato effetto può essere raggiunto in entrambi i modi. Un esempio semplice e comune sarebbe implementare il menu cassetto stile facebook scorrevole:
Questo effetto può essere ottenuto attraverso transizioni in questo modo:
.sf-page {
-webkit-transition: -webkit-transform .2s ease-out;
}
.sf-page.out {
-webkit-transform: translateX(240px);
}
Oppure, attraverso animazioni in questo modo:
.sf-page {
-webkit-animation-duration: .4s;
-webkit-transition-timing-function: ease-out;
}
.sf-page.in {
-webkit-animation-name: sf-slidein;
-webkit-transform: translate3d(0, 0, 0);
}
.sf-page.out {
-webkit-animation-name: sf-slideout;
-webkit-transform: translateX(240px);
}
@-webkit-keyframes sf-slideout {
from { -webkit-transform: translate3d(0, 0, 0); }
to { -webkit-transform: translate3d(240px, 0, 0); }
}
@-webkit-keyframes sf-slidein {
from { -webkit-transform: translate3d(240px, 0, 0); }
to { -webkit-transform: translate3d(0, 0, 0); }
}
Con HTML che assomiglia così:
<div class="sf-container">
<div class="sf-page in" id="content-container">
<button type="button">Click Me</button>
</div>
<div class="sf-drawer">
</div>
</div>
E, questo accompagnamento lo script jQuery:
$("#content-container").click(function(){
$("#content-container").toggleClass("out");
// below is only required for css animation route
$("#content-container").toggleClass("in");
});
Quello che mi piacerebbe capire è quali sono i pro ei contro di questi approcci.
- Una differenza ovvia è che l'animazione richiede molto più codice.
- L'animazione offre una maggiore flessibilità. Posso avere un'animazione diversa per lo scorrimento e in
- C'è qualcosa che si può dire sulle prestazioni. Entrambi approfittano dell'accelerazione h/w?
- Qual è il più moderno e il modo in cui andare avanti
- Qualcos'altro che è possibile aggiungere?
spiegazione chiara perfetta –
controlla anche questo articolo http://www.kirupa.com/html5/css3_animations_vs_transitions.htm, indica correttamente che le transizioni sono la strada da percorrere quando si fanno interazioni javascript. –
spiegazione chiara grazie – Student22