Meiner Meinung nach ist jQuery's animate
im Vergleich zu CSS3 transition
, das solche Animationen für jede 2D- oder 3D-Eigenschaft ausführt, etwas überlastet . Ich befürchte auch, dass das Überlassen des Browsers und das Vergessen der Ebene mit dem Namen JavaScript zu Ersatz-CPU-Saft führen könnte - insbesondere, wenn Sie mit den Animationen sprengen möchten. Daher möchte ich Animationen haben, in denen sich die Stildefinitionen befinden, da Sie die Funktionalität mit JavaScript definieren . Je mehr Präsentationen Sie in JavaScript einfügen, desto mehr Probleme treten später auf.
Sie müssen lediglich addClass
das Element verwenden , das Sie animieren möchten, und eine Klasse mit CSS- transition
Eigenschaften festlegen . Sie "aktivieren" einfach die Animation , die auf der reinen Präsentationsebene implementiert bleibt .
.js
// with jQuery
$("#element").addClass("Animate");
// without jQuery library
document.getElementById("element").className += "Animate";
Man kann eine Klasse einfach mit jQuery entfernen oder eine Klasse ohne Bibliothek entfernen .
.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>
Dies ist eine schnelle und bequeme Lösung für die meisten Anwendungsfälle.
Ich verwende dies auch, wenn ich ein anderes Styling (alternative CSS-Eigenschaften) implementieren und den Stil im laufenden Betrieb mit einer globalen .5s-Animation ändern möchte. Ich füge dem eine neue Klasse hinzu BODY
, während ich alternatives CSS in einer Form wie dieser habe:
.js
$("BODY").addClass("Alternative");
.css
BODY.Alternative #element{
color : blue;
transition : .5s linear;
}
Auf diese Weise können Sie unterschiedliche Stile mit Animationen anwenden, ohne unterschiedliche CSS-Dateien zu laden. Sie verwenden nur JavaScript, um a festzulegen class
.