À mon avis, jQuery animate
est un peu galvaudé, par rapport à l'CSS3 transition
, ce qui exerce une telle animation 2D ou 3D de la propriété. Aussi, j'ai peur, que le laisser pour le navigateur et par l'oubli de la couche appelée JavaScript pourrait conduire à de rechange UC jus - et surtout, lorsque vous souhaitez souffle avec les animations. Donc, j'aime avoir des animations où les définitions de style, car vous définir les fonctionnalités JavaScript. Le plus de la présentation vous injecter dans le JavaScript, le plus de problèmes que vous devrez faire face à plus tard.
Tout ce que vous avez à faire est d'utiliser addClass
par rapport à l'élément que vous souhaitez animer, où vous pouvez définir une classe qui a CSS transition
propriétés. Vous avez juste à "activer" l'animation, qui reste mis en œuvre sur le pur couche de présentation.
.js
// with jQuery
$("#element").addClass("Animate");
// without jQuery library
document.getElementById("element").className += "Animate";
On pourrait facilement supprimer une classe avec jQuery, ou de supprimer une classe sans bibliothèque.
.css
#element{
color : white;
}
#element.Animate{
transition : .4s linear;
color : red;
/**
* Not that ugly as the JavaScript approach.
* Easy to maintain, the most portable solution.
*/
-webkit-transform : rotate(90deg);
}
.html
<span id="element">
Text
</span>
C'est une solution rapide et pratique pour la plupart des cas d'utilisation.
J'ai aussi l'utiliser quand je veux mettre en oeuvre un autre style (alternative propriétés CSS), et qui souhaitent changer de style à la volée avec un mondiale .5s animation. J'ai ajouter une nouvelle classe à l' BODY
, tout en ayant alternative CSS dans un formulaire comme ceci:
.js
$("BODY").addClass("Alternative");
.css
BODY.Alternative #element{
color : blue;
transition : .5s linear;
}
De cette façon, vous pouvez appliquer différents style, avec des animations, sans chargement différents fichiers CSS. Vous n'impliquent JavaScript pour définir un class
.