Cette présentation est réalisé à l'aide d'impress.js. Malheureusement, il semblerai que votre navigateur ne supporte pas toutes les fonctionnalité requise par cette bibliothèque.

Pour profiter au mieux de cette présentation, utiliser un navigateur moderne comme les toutes dernières versions de Chrome, Safari ou Firefox.

Les transitions et animations CSS3

(^_^)

Jérémie Patonnier - KiwiParty 2012

http://jeremie.patonnier.net
@JeremiePat

Il était une fois...

Les images animées

GIF, aPNG, MNG

© From Me To You

Flash

Seul solution d'animation complète, fiable et multiplateforme au début des années 2000

Javascript

Au début : DOM + setTimout/setInterval

Aujourd'hui : Canvas, WebGL + requestAnimationFrame

Et encore bien d'autre

Boo — © Balilewis — http://www.geek-art.net/geek-art-loves-balilewis-boo-t-shirt/ 

Les transitions CSS3

Status : Working Draft

Support navigateur
Firefox Chrome Safari Opera Internet Explorer
4.0
-moz-
1.0
-webkit-
3.2
-webkit-
10.5
-o-
10.0
-ms-

.ball {
-webkit-transition: left 2s;
   -moz-transition: left 2s;
    -ms-transition: left 2s;
     -o-transition: left 2s;
        transition: left 2s;
}
			

Paramétrer les transitions

Timing function ?

1 0 0 1 Temps Valeur 0.1 0.25 (x1, y1) (x2, y2) linear ease ease-in ease-in-out ease-out cubic-bezier(x1, y1, x2, y2) cubic-bezier(.25, .1, .25, 1) cubic-bezier(0, 1.5, 1, -.5) cubic-bezier(.1, .9, .8, 1.3)

Delay

Rainbow me

Noob, I am your father 

Les animations CSS3

Status : Working Draft

Support navigateur
Firefox Chrome Safari Opera Internet Explorer
5.0
-moz-
??
-webkit-
4.0
-webkit-
12
-o-
10.0
-ms-

1. Définir l'animation

@keyframes monAnimation {  
      0% { /* ... */ }  
     30% { /* ... */ }  
     68%, 72% { /* ... */ }  
    100% { /* ... */ }  
}

2. Rattacher l'animation à un élément

.maClass {  
    animation-name: monAnimation; 
}

3. Paramétrer l'animation

Démo

The end? 

Des évènements
dans le DOM

Pour les transitions Pour les animations
  • transitionend
  • animationstart
  • animationiteration
  • animationend
document.addEventListener(
    "transitionend", 
    function(){
        document.getElementById("myDiv")
                .toggleClass("left right");
    }, 
    false
);
Attention

Les limites des
animations CSS

  1. Les spécifications sont loin d'êtres stables
  2. Il manque encore beaucoup de choses :
    • Animer des attributs
    • Animer des objets le long d'un chemin
    • Synchroniser des animations
  3. Le controle des animations est très difficile sans Javascript

Merci :)

CC ~C4Chaos — http://www.flickr.com/photos/coolmel/3242477790/

Questions ?

http://jpat.fr/KiwiParty2012@JeremiePat — KiwiParty 2012