Einführung Mit Animation können Sie mithilfe von reinem CSS ganz einfach verschiedene Animationseffekte auf Webseiten implementieren, ohne auf JavaScript oder jQuery angewiesen zu sein. Kompatibilität Animationen werden in den meisten gängigen Browsern gut unterstützt! Studenten, die noch mit IE9 kompatibel sind, sollten es mit Vorsicht verwenden. CSS-Koordinatensystem Bevor wir Animation verstehen, müssen wir zuerst das CSS-Koordinatensystem verstehen, da viele Animationseffekte eng mit den Koordinaten von Elementen zusammenhängen. In CSS3 ist eine Webseite keine zweidimensionale Ebene mehr, sondern ein dreidimensionaler Raum. Die horizontale Richtung, die vertikale Richtung und die senkrechte Bildschirmrichtung entsprechen jeweils den x-, y- und z-Achsen des dreidimensionalen Koordinatensystems, wie in der folgenden Abbildung dargestellt. Die Pfeilrichtung ist positiv, die entgegengesetzte Richtung ist negativ (beachten Sie, dass die Richtung der y-Achse dem herkömmlichen kartesischen Koordinatensystem entgegengesetzt ist). Animationen 1. Transformationen Transform wird im Chinesischen mit „Umwandlung“ übersetzt, ich nenne es aber lieber „Deformation“ (die berühmten Transformers heißen Transformer). Mit der Transformationsfunktion können wir HTML-Elemente dazu bringen, verschiedene Deformationen wie Verschiebung, Skalierung, Drehung, Verzerrung usw. auszuführen, ohne den normalen Dokumentfluss zu beeinträchtigen. (1) Übersetzen Übersetzen wird im Allgemeinen als „Übersetzung“ übersetzt, in CSS jedoch im Allgemeinen als „Übersetzung“ verwendet, da Übersetzen zum Ändern der Position von HTML-Elementen im 3D-Koordinatensystem verwendet wird. Translate unterstützt das Verschieben in jede Richtung innerhalb des Koordinatensystems (durch jede Kombination von Vektoren in x-, y- und z-Richtung). Die Einheiten können Längeneinheiten und Prozentsätze sein (der Prozentsatz ist relativ zur Größe des zu verschiebenden Elements, die x-Achse ist relativ zur Breite, die y-Achse ist relativ zur Höhe und in z-Richtung kann die z-Richtung nicht in Prozentsätzen ausgedrückt werden, da das Element keine „Dicke“ hat). Beispiel: transformieren: übersetzenX(100px) übersetzenY(50%) übersetzenZ(-100px); // Oder abkürzen „transform“: translate3d(100px, 50%, 2em); Beachten: (2) Maßstab Skalieren bedeutet „Zoom“ und dient, wie der Name schon sagt, dazu, die Größe eines Elements zu verändern. Zum Beispiel: transformieren: MaßstabX(2) MaßstabY(0,5) MaßstabZ(1); // Oder verkürzen Sie transform: scale3d(2, 0.5, 1); Ähnlich wie (3) Drehen Rotate bedeutet „drehen“ und unterstützt das Drehen von Elementen um die x-, y- und z-Achse. Die positive Drehrichtung ist gegen den Uhrzeigersinn und steht in positiver Richtung der Koordinatenachse. Bitte beachten Sie das Koordinatensystemdiagramm oben. Die // Standardrotation um die Z-Achse transform: rotate(90deg); Transformieren: X-Drehung (30 Grad) Y-Drehung (60 Grad) Z-Drehung (-90 Grad); Im Gegensatz zu „translate“ und „scale“ kann „rotate“ nicht als transformieren: 3d drehen(1, 2, 3, 90 Grad); Ähnlich wie Aus Platzgründen liste ich nur die drei am häufigsten verwendeten Transformationsfunktionen auf. Die übrigen Transformationsfunktionen finden Sie unter MDN-Transformationsfunktion. (4) Kombination Wir können verschiedene Transformationsmethoden kombinieren, wie zum Beispiel: transformieren: verschiebeY(200px) dreheZ(90 Grad) skaliere(3); Die Ausführungsreihenfolge der kombinierten Methode verläuft von rechts nach links, d. h. zuerst wird die Skalierung ausgeführt, dann die Drehung und schließlich die Übersetzung. Die Effekte sind kumulativ. Die Reihenfolge, in der die Methoden geschrieben werden, hat großen Einfluss auf das Endergebnis. Sehen Sie sich das folgende Beispiel an. Die Verschiebung und das Zoomen entlang der Y-Achse führen in unterschiedlicher Reihenfolge zu deutlich unterschiedlichen Ergebnissen: Wenn Sie zuerst übersetzen und dann skalieren, wird auch die Übersetzungsdistanz proportional skaliert. Wenn Sie jedoch zuerst skalieren und dann übersetzen, geschieht dies nicht. Wenn Sie transform verwenden, müssen Sie es daher in der Reihenfolge Übergang Transition wird mit „Übergang“ übersetzt und betont den Prozess. In CSS bezeichnet es den dynamischen Vorgang, bei dem ein Element innerhalb einer bestimmten Zeitspanne von einem Zustand (entspricht einem CSS-Attribut) in einen anderen Zustand übergeht. Wir können entscheiden, wie der Übergang erfolgen soll und wie viel Zeit dafür aufgewendet werden soll. Um beispielsweise die Wolke größer zu machen, wenn die Maus darüber schwebt, können wir schreiben: .Wolke{ Breite: 240px; Übergang: 1s; } .cloud:hover{ Breite: 320px; } Wirkung: Übergang kann in Verbindung mit Transformieren verwendet werden. So können wir beispielsweise die Wolke vergrößern und gleichzeitig rotieren lassen: .cloud:hover{ Breite: 320px; transformieren: drehen (360 Grad); } Wirkung: Für unterschiedliche Effekte können wir unterschiedliche Übergangszeiten einstellen: .Wolke{ Breite: 240px; Übergang: Breite 1 s, Transformation 0,5 s; } Wir können für den Effekt auch eine Verzögerungszeit einstellen, beispielsweise warten wir mit der Drehung bis die Breite zunimmt: .Wolke{ Breite: 240px; Übergang: Breite 1 s, Transformation 0,5 s 1 s; } Wirkung: Wir können auch für jeden Effekt eine andere Timing-Funktion einstellen, um den Beschleunigungseffekt zu steuern. Beispielsweise können wir die Rotationsgeschwindigkeit schrittweise erhöhen: .Wolke{ Breite: 240px; Übergang: Transformation, 2 s Einarbeitung; } .cloud:hover{ transformieren: drehen (1080 Grad); } Wirkung: Weitere Timing-Funktionen werden später erläutert. Sie können auch auf MDN-Übergangs-Timing-Funktionen verweisen. Schlüsselbilder (1) Grundlegende Nutzung Keyframe wird im Chinesischen als „Schlüsselbild“ übersetzt. Es ist eine sehr leistungsstarke Funktion in der Animation. Einfach ausgedrückt können wir Animationen erstellen, indem wir Schlüsselpunkte und Schlüsselzustände in einer Animation definieren. Keyframes ermöglichen eine stärkere Kontrolle über den Animationsprozess und die Details als Übergänge. Schauen wir uns zunächst ein Beispiel an (ein Teil des Codes wurde weggelassen) html: <div Klasse="Himmel"></div> <div Klasse="gras"></div> <div Klasse="Straße"> <div Klasse="Zeilen"></div> <img src="http://lc-jOYHMCEn.cn-n1.lcfile.com/a3f630c957a4b32d0221.png" class="Mario animiert"> </div> CSS: .mario{ Position: absolut; links: 0px; Breite: 100px; } .animiert{ Animationsname: Laufwerk; Animationsdauer: 1 s; Animations-Timing-Funktion: linear; } @keyframes fahren { von { transform: translateX(0) } zu { transform: translateX(700px) } } Wirkung: Es gibt auch Kurzformen für Animationen, wie zum Beispiel: Animation: Slidein 3 s, Ease-In 1 s, unendlich rückwärts, beides läuft; Allerdings stellt diese Methode gewisse Anforderungen an die Schreibreihenfolge (die Verzögerung muss nach der Dauer geschrieben werden, für die anderen Parameter gibt es keine Reihenfolgeanforderung und CSS erkennt sie anhand der übergebenen Schlüsselwörter). (2) Animationsverzögerung Mit Animationsverzögerung: 2 s; (3) Animation Füllmodus vorwärts Im obigen Beispiel können Sie sehen, dass Mario sich nach rechts bewegt und dann zum Ausgangspunkt zurückkehrt. Was wäre, wenn wir möchten, dass er nach Abschluss der Bewegung rechts bleibt? Es ist ganz einfach, wir stellen einfach den Füllmodus der Animation ein: Animationsfüllmodus: vorwärts rückwärts Im Gegensatz dazu gibt es .animiert{ Animationsname: Laufwerk; Animationsdauer: 1 s; Animationsfüllmodus: Rückwärtswörter; Animationsverzögerung: 1 s; Animations-Timing-Funktion: linear; } @keyframes fahren { von { transform: translateX(350px) } zu { transform: translateX(700px) scale(2) } } Wirkung: Wie Sie sehen, bewegt sich der Mann unmittelbar vor Beginn der Animation auf 350 Pixel und die Animation beginnt 1 Sekunde später. beide Offensichtlich werden in beiden Fällen gleichzeitig Vorwärts- und Rückwärtsregeln angewendet, das heißt, der Zustand des ersten Frames wird während der Verzögerung zuerst angewendet und der Zustand des letzten Frames wird am Ende beibehalten. (3) Animation wiederholen Wir können die Anzahl der Animationsschleifen über Anzahl der Animationsiterationen: 3; // Endlosschleife animation-iteration-count: infinite; So was: (4) Animationsrichtung Normal Die normale Richtung, die zugleich die Standardrichtung ist, ist zuerst von, dann nach. umkehren Entgegen der normalen Richtung, das heißt zuerst zu, dann von. Zum Beispiel: .animiert{ ... Animationsrichtung: rückwärts; } @keyframes fahren { von { transform: translateX(-100px) rotateY(180deg) } zu { transformieren: übersetzenX(862px) drehenY(180 Grad)} } Wirkung: wechseln Alternate bedeutet „abwechselnd“, also Normal und Rückwärts wechseln sich ab, erst Normal und dann Rückwärts. umgekehrte Alternative Abwechselnd in umgekehrter Richtung, erst rückwärts und dann normal. (4) Animation-Timing-Funktion Wie Übergänge können auch Keyframes Timing-Funktionen festlegen. Häufig verwendete Timing-Funktionen werden wie folgt zusammengefasst:
Die intuitive Darstellung ist wie folgt (Codepen): Zusätzlich zu den oben genannten vorgefertigten Methoden können wir die Geschwindigkeitskurve über die Bézierkurve anpassen. Wir können unsere eigenen Bézierkurven visuell unter http://cubic-bezier.com erstellen. Erstellen Sie beispielsweise eine Kurve, die sehr langsam beginnt und dann plötzlich sehr schnell wird: CSS: Animations-Timing-Funktion: kubische Bézierfunktion (1, 0,03,1, -0,03); Wirkung: Ist das nicht unglaublich? (5) Kettenanimation Wir können mehrere Animationen hintereinander verwenden. Wenn wir zum Beispiel möchten, dass der kleine Mann während der Fahrt springt, können wir das so schreiben: CSS: .mario { ... Animation: Fahrt 3 s, beide unendlich linear, Sprung 0,5 s 1,2 s, Ein- und Ausfahren unendlich; } @keyframes springen { 0 % { oben: -40px; } 50 % { oben: -120px; } 100 % { oben: -40px; } } Wirkung: üben Der Zweck dieses Artikels besteht darin, die Grundlagen der CSS3-Animation bekannt zu machen. Er deckt das Wissen über Animation nicht vollständig ab. Bitte verzeihen Sie mir, dass ich das Wissen nicht eingebe oder erkläre. Nachdem wir das oben genannte Wissen gemeistert haben, können wir bereits Animationen verwenden, um reichhaltige Animationseffekte zu erstellen. Hier sind einige kleine Beispiele auf Codepen: vollständige Mario-Demo animiertes Popup Artikel in den Warenkorb fliegen Karten umdrehen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Prototyp und Prototypenkette Prototyp und Protodetails
Einführung Heute habe ich gelernt, wie man mit Py...
Inhaltsverzeichnis Vorwort 1. Laden Sie eine einz...
Notieren Sie den Fehler, der mich heute den ganze...
Einführung Beginnen wir mit unserem Inhalt. Ich g...
In der MySQL-Dokumentation können MySQL-Variablen...
Ich habe zuvor die Verwendung des asynchronen Lad...
Eine kurze Erläuterung des Navigationsfensters in...
Netzwerk-Ports freigeben Tatsächlich gibt es in D...
JDK-Downloadadresse: http://www.oracle.com/techne...
Inhaltsverzeichnis Über Trigger Verwendung von Tr...
CSS Standard-Stile löschen Die üblichen klaren St...
Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...
Vorwort Während der Entwicklung stoßen wir häufig...
1. Schauen wir uns zunächst die Wirkung an Von de...
Rot und Pink und ihre Hexadezimalcodes. #990033 #...