En mi opinión, jQuery animate
está un poco sobreutilizado, en comparación con CSS3 transition
, que realiza dicha animación en cualquier propiedad 2D o 3D. También me temo que dejarlo en manos del navegador y olvidar la capa llamada JavaScript podría llevar a un uso de CPU de repuesto , especialmente cuando desea explotar con las animaciones. Por lo tanto, me gusta tener animaciones donde están las definiciones de estilo, ya que tú defines la funcionalidad con JavaScript . Cuanta más presentación inyecte en JavaScript, más problemas enfrentará más adelante.
Todo lo que tienes que hacer es usar addClass
el elemento que deseas animar, donde configuras una clase que tiene transition
propiedades CSS . Usted acaba de "activar" la animación , que se mantiene a cabo sobre la capa de presentación pura .
.js
$("#element").addClass("Animate");
document.getElementById("element").className += "Animate";
Se podría eliminar fácilmente una clase con jQuery o eliminar una clase sin biblioteca .
.css
#element{
color : white;
}
#element.Animate{
transition : .4s linear;
color : red;
-webkit-transform : rotate(90deg);
}
.html
<span id="element">
Text
</span>
Esta es una solución rápida y conveniente para la mayoría de los casos de uso.
También uso esto cuando quiero implementar un estilo diferente (propiedades CSS alternativas) y deseo cambiar el estilo sobre la marcha con una animación global de .5s. Agrego una nueva clase a BODY
, mientras tengo CSS alternativo en una forma como esta:
.js
$("BODY").addClass("Alternative");
.css
BODY.Alternative #element{
color : blue;
transition : .5s linear;
}
De esta manera, puede aplicar diferentes estilos con animaciones, sin cargar diferentes archivos CSS. Solo implica JavaScript para configurar un class
.