Schlüsselpunkte
- JavaScript kann CSS3 -Animationen verwalten, indem Ereignishandler zu Elementen hinzugefügt werden, wodurch eine feine Steuerung von Animationen ermöglicht wird, z. B. das Abspielen von Sequenz. Es gibt drei Arten von Ereignissen, die erfasst werden können: "AnimationStart", "AnimationItration" und "Animationend".
- Cross-Browser-Kompatibilität dieser Animationsereignisse kann durch Aufrufen von
addEventListener
für alle vorangestellten und nicht fixierten Namen mit benutzerdefinierten Funktionen erreicht werden. Auf diese Weise kann der Ereignishandler mithilfe einer Codezeile zugewiesen werden. - Das an die Animations -Listener -Funktion übergebene Ereignisobjekt liefert den Animationsnamen und verstrichene Zeit seit Beginn der Animation. Dies kann verwendet werden, um festzustellen, wann eine bestimmte Animation endet, und andere Code auszuführen, z. B. die Anwendung einer anderen CSS3 -Animation in einer bestimmten Reihenfolge.
CSS3-Animationen sind reibungslos und einfach zu implementieren, aber im Gegensatz zu JavaScript hat sie keine Frame-by-Frame-Steuerung. Glücklicherweise können Sie Event -Handler auf jedes Element anwenden, um den Animationszustand zu bestimmen. Dies ermöglicht eine feine Steuerung, z. B. das Spielen verschiedener Animationen nacheinander.
Betrachten Sie diese einfache CSS3 -Animation:
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }
Wenn die enable
-Klasse mit id anim
auf ein Element angewendet wird, wird eine Animation mit dem Namen flash
dreimal ausgeführt. Jede Iteration dauert eine Sekunde, in der das Element ausblendet und dann verblasst.
Drei Arten von Ereignissen werden ausgelöst, wenn die Animation auftritt:
animationstart
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
animationstart
Ereignis wird abgefeuert, wenn die Animation zum ersten Mal gestartet wird.
animationiteration
anim.addEventListener("animationiteration", AnimationListener, false);
animationiteration
Ereignisse werden zu Beginn jeder neuen Animations -Iteration abgefeuert, d. H. Jede Iteration mit Ausnahme der ersten Iteration.
animationend
anim.addEventListener("animationend", AnimationListener, false);
animationend
Ereignis feuert am Ende der Animation ab.
Browserkompatibilität
Zum Zeitpunkt des Schreibens unterstützen Firefox-, Chrome-, Safari-, Opera- und IE10 CSS3 -Animationen und verwandte Ereignishandler. Zusätzlich verwenden die Browser von Opera, IE10 und Webkit Präfixe und haben einige Falländerungen vorgenommen, um Narrensicher zu gewährleisten ...
W3C Standard Firefox Webkit Opera IE10
animationstart
animationstart
webkitAnimationStart
oanimationstart
MSAnimationStart
animationiteration
animationiteration
webkitAnimationIteration
oanimationiteration
MSAnimationIteration
animationend
animationend
webkitAnimationEnd
oanimationend
MSAnimationEnd
addEventListener
var pfx = ["webkit", "moz", "MS", "o", ""]; function PrefixedEvent(element, type, callback) { for (var p = 0; p < pfx.length; p++) { if (!pfx[p]) type = type.toLowerCase(); element.addEventListener(pfx[p] + type, callback, false); } }
Die einfachste Möglichkeit, das Präfixproblem zu lösen Cross-Browser-Ereignis-Handler können jetzt mit einer Codezeile zugewiesen werden:
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }
Ereignisobjekt
Im obigen Code wird die Funktion AnimationListener
aufgerufen, wenn ein Animationsereignis auftritt. Ein Ereignisobjekt wird als einzelner Parameter übergeben. Zusätzlich zu Standardeigenschaften und -methoden enthält es auch:
-
animationName
: CSS3 -Animationsname (d. H.flash
) -
elapsedTime
: Zeit (in Sekunden) seit Beginn der Animation.
Daher können wir erkennen, wann die flash
-Animation endet, zum Beispiel:
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
kann der Code beispielsweise eine vorhandene Klasse entfernen oder eine andere CSS3 -Animation in einer bestimmten Reihenfolge anwenden.
CSS3 -Animationsereignis Demonstration in JavaScript
anzeigen Auf der Demo -Seite wird eine Schaltfläche angezeigt. Wenn Sie darauf klicken, wird die Klasse "Aktivieren" umgeschaltet, wodurch die flash
-Animation gestartet wird. Wenn das Animationsereignis ausgelöst wird, wird der Status in der Konsole angezeigt. Nachdem die Animation beendet ist, wird die Klasse "Enable" entfernt, damit die Schaltfläche erneut geklickt werden kann.
Wenn Sie in einem interessanten Projekt animierte Event -Capture verwenden, lassen Sie es mich bitte wissen.
(Wenn Sie gerne diesen Artikel lesen, werden Sie es lieben, lernbar zu sein. Hier können Sie neue Fähigkeiten und Fähigkeiten von Meistern lernen. Mitglieder können sofort auf alle E-Books und interaktiven Online-Kurse von SitePoint zugreifen, wie z. B. "HTML5 und" CSS3 für die reale Welt)
(Die Kommentare für diesen Artikel sind geschlossen. Gibt es Fragen zu CSS? Warum nicht in unserem Forum fragen?)
FAQs (FAQ) über CSS3 -Animationen und JavaScript -Ereignishandler
Was sind CSS3 -Animationen und JavaScript -Ereignis -Handler?
CSS3 -Animation ist eine Funktion von CSS3 (Cascading -Stylesheets), mit der Sie HTML -Elemente ohne Verwendung von JavaScript oder Flash animieren können. Es bietet eine Möglichkeit, einfache Animationen direkt im CSS -Code ohne zusätzliche Ressourcen zu erstellen. Auf der anderen Seite sind JavaScript -Ereignis -Handler Funktionen in JavaScript, die ausgelöst werden, wenn bestimmte Ereignisse auftreten. Diese Ereignisse können ein beliebiges Ereignis sein, z. B. ein Benutzer, der auf eine Schaltfläche klickt, das Laden von Seite oder eine Animation beendet. Verwenden Sie CSS3 -Animationen und JavaScript -Ereignishandler, um dynamische interaktive Webinhalte zu erstellen.
Wie verwendet ich JavaScript -Ereignis -Handler mit CSS3 -Animationen?
Um den JavaScript -Event -Handler mit CSS3 -Animationen zu verwenden, müssen Sie dem HTML -Element, das Sie animieren möchten, einen Ereignishörer hinzufügen. Dieser Ereignishörer löst die JavaScript -Funktion am Ende der Animation aus. Hier ist ein grundlegendes Beispiel:
anim.addEventListener("animationiteration", AnimationListener, false);
In diesem Code ist "Animationend" das Ereignis, das wir hören und das ausfeuert, wenn die CSS3 -Animation abgeschlossen ist.
Kann ich JavaScript -Ereignishandler mit CSS3 -Übergängen verwenden?
Ja, Sie können JavaScript -Ereignishandler mit CSS3 -Übergängen verwenden, genau wie Sie mit CSS3 -Animationen tun. Die Veranstaltung, auf die Sie sich anhören müssen, ist "Transitionend". Dieses Ereignis wird abgefeuert, nachdem der CSS -Übergang abgeschlossen ist.
Wie kann man JavaScript verwenden, um die Zeit von CSS3 -Animationen zu steuern?
Sie können JavaScript verwenden, um die Zeit der CSS3-Animation mit der Eigenschaft "Animation-Delay" zu steuern. Diese Eigenschaft legt die Verzögerung zu Beginn der Animation fest. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }
In diesem Code beginnt die Animation, nachdem die Seite 2 Sekunden lang geladen wurde.
Wie wiederholt man CSS3 -Animationen mit JavaScript?
Sie können CSS3-Animationen mit JavaScript mithilfe der Eigenschaft "Animation-Operation-Count" wiederholen. Diese Eigenschaft gibt an, wie oft die Animation gespielt werden soll. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
In diesem Code wird die Animation auf unbestimmte Zeit wiederholt.
Kann ich die Geschwindigkeit von CSS3 -Animationen mit JavaScript ändern?
Ja, Sie können die Geschwindigkeit von CSS3 -Animationen mit JavaScript ändern. Die Eigenschaft "Animationsdauer" steuert die Zeitdauer, die die Animation benötigt, um einen Zyklus abzuschließen. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
anim.addEventListener("animationiteration", AnimationListener, false);
In diesem Code dauert die Animation 2 Sekunden.
Wie kann CSS3 -Animationen mit JavaScript innehalten und wiederhergestellt werden?
Sie können CSS3-Animationen mithilfe der Eigenschaft "Animation-Play-State" pausieren und wiederherstellen. Diese Eigenschaft legt fest, ob die Animation ausgeführt oder innehalten wird. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
anim.addEventListener("animationend", AnimationListener, false);
In diesem Code wird die Animation durchgeführt.
Kann ich die Ausrichtung von CSS3 -Animationen mit JavaScript ändern?
Ja, Sie können die Ausrichtung Ihrer CSS3 -Animation mit JavaScript ändern. Die Eigenschaft "Animation-Regisseurung" definiert, ob die Animation während eines Wechselzyklus umgekehrt gespielt werden soll. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
var pfx = ["webkit", "moz", "MS", "o", ""]; function PrefixedEvent(element, type, callback) { for (var p = 0; p < pfx.length; p++) { if (!pfx[p]) type = type.toLowerCase(); element.addEventListener(pfx[p] + type, callback, false); } }
In diesem Code wird die Animation rückwärts abgespielt.
Wie kann ich JavaScript verwenden, um das Ende einer CSS3 -Animation zu erkennen?
Sie können JavaScript verwenden, um das Ende einer CSS3 -Animation zu erkennen, indem Sie dem Ereignisereignis einen Ereignishörer hinzufügen. Diese Veranstaltung wird nach Abschluss der CSS3 -Animation abgefeuert. Hier erfahren Sie, wie es geht:
// 动画侦听器事件 PrefixedEvent(anim, "AnimationStart", AnimationListener); PrefixedEvent(anim, "AnimationIteration", AnimationListener); PrefixedEvent(anim, "AnimationEnd", AnimationListener);
Kann ich die Animations-Timing-Funktion von CSS3-Animation mit JavaScript ändern?
Ja, Sie können die "Animations-Timing-Funktion" von CSS3-Animationen mit JavaScript ändern. Diese Eigenschaft gibt die Geschwindigkeitskurve der Animation an. Sie können diese Eigenschaft in JavaScript wie folgt festlegen:
if (e.animationName == "flash" && e.type.toLowerCase().indexOf("animationend") >= 0) { ... }
In diesem Code beginnt die Animation langsam und beschleunigt dann.
Das obige ist der detaillierte Inhalt vonSo erfassen Sie CSS3 -Animationsereignisse in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)