Veröffentlichung von Anime.js v4
(animejs.com)- Anime.js ist eine schnelle und vielseitige JavaScript-Bibliothek, mit der sich im Web praktisch alles animieren lässt
- V4 wurde in ihrer gesamten Struktur neu geschrieben, was die Performance deutlich verbessert, und auch die API wurde auf modernere Weise überarbeitet
- Besonders durch ES-Module-Unterstützung, Tree-Shaking-Optimierung und Verbesserungen bei der Kombination komplexer Animationen wurde die Developer Experience verbessert
Zusammenfassung der wichtigsten Änderungen in Anime.js V4
-
ES-Modularisierung und API-Änderungen
- Alle Funktionen werden jetzt als ES-Module bereitgestellt (
anime()→animate()) - Das ist vorteilhaft für Tree Shaking, sodass nur die benötigten Funktionen importiert und verwendet werden können
anime({ targets })→ geändert zuanimate(targets, params)
- Alle Funktionen werden jetzt als ES-Module bereitgestellt (
-
Wichtige API-Änderungen
easeInOutQuad→'inOutQuad'(Präfix entfernt)- Umbenennung der Callback-Funktionen:
begin()→onBegin()update()→onUpdate()complete()→onComplete()change()→onRender()- Callbacks rund um Loops wurden in
onLoop()zusammengeführt
.finished→ geändert zu.then()für die Promise-Behandlung{ value: 100 }→ geändert zu{ to: 100 }zur Darstellung von Wertenround: 100→modifier: utils.round(2), wodurch sich Zahlen flexibler verarbeiten lassen
-
Verbesserungen bei Aufbau und Kombination von Animationen
- Der Standardwert für Easing wurde zu
outQuadgeändert - Bei doppelten Animationen derselben Eigenschaft auf demselben Ziel wird der vorherige Tween standardmäßig abgebrochen (
composition: 'replace')composition: 'none'→ Verhalten wie in V3 (Verschachtelung erlaubt)composition: 'add'→ additive Animationen sind möglich
- Der Standardwert für Easing wurde zu
-
Änderungen beim Abspielverhalten
direction: 'reverse'oder'alternate'→ aufgeteilt inreversed: true,alternate: true, sodass beides gleichzeitig verwendet werden kannloop: 1→ der Standard-Loop wurde auf 0 geändert
-
Verbesserungen am Timeline-System
anime.timeline()→ geändert zucreateTimeline()- In Kind-Animationen können
loopundreversedverwendet werden - Mit der Eigenschaft
defaultslassen sich gemeinsame Optionen für Kind-Animationen festlegen - Flexiblere Timing-Steuerung durch zusätzliche Funktionen wie
set(),labelundstagger() - CSS-Transform-Eigenschaften gehen zwischen Kind-Animationen natürlicher ineinander über
-
Stagger- und SVG-Animationen
anime.stagger()→ direktstagger()importieren und verwendenanime.path()→svg.createMotionPath()verwenden- SVG-Eigenschaften wie
strokeDashoffsetundpointswerden ebenfalls übersvg.drawLine(),svg.morphTo()usw. verarbeitet
-
Ausgliederung von Utility-Funktionen
anime.get()→utils.get()anime.set()→utils.set()anime.remove()→utils.remove()anime.round()→utils.round()
-
Änderungen an den Engine-Einstellungen
anime.suspendWhenDocumentHidden = false→engine.pauseWhenHidden = falseanime.speed = 0.5→engine.playbackRate = 0.5
-
Performance- und Strukturverbesserungen
- Durch ein vollständiges Refactoring des Codes wurden der Speicherverbrauch gesenkt und die Performance verbessert
- Durch die Neuschreibung des Tween-Systems treten bei doppelten Animationen weniger Bugs auf
- Unterstützung für additive Animationen mit
composition: 'add' - Verbesserte natürliche Übergänge beim Aufbau von CSS-Transforms
Neue Funktionen
- Unterstützung für CSS-Variablen-Animationen: z. B.
animate('#target', { '--radius': '20px' }) - Unterstützung für
from-Animationen: Verwendung in der Form{ from: 50, to: 100 } - Alpha-Unterstützung für hex-Farben: z. B. Format
#FF4433AA - Einführung von
createTimer:- als Ersatz für
setTimeoutundsetInterval onLoop,onUpdate,onCompleteusw. können verwendet werden- durch Steuerung von
frameRateauch für Game Loops nutzbar
- als Ersatz für
- Unterstützung für variable Framerates: individuell pro Animation, Timeline und Timer konfigurierbar
Merkmale von Anime.js
-
Intuitive API
- Bietet eine leicht nutzbare und zugleich leistungsstarke Animations-API.
- Unterstützt parameterbasierte Eigenschaften und ein flexibles Keyframe-System.
- Bietet integrierte Easing-Funktionen und verbesserte Transform-Funktionen.
-
SVG-Toolset
- Mit den integrierten SVG-Utilities lassen sich Form-Morphing, Motion Paths und Linienzeichnungen einfach umsetzen.
- Umfasst Form-Morphing, Linienzeichnung und Motion-Path-Funktionen.
-
Scroll Observer
- Bietet eine Scroll Observer API, mit der sich Animationen scrollabhängig synchronisieren und auslösen lassen.
- Unterstützt verschiedene Synchronisationsmodi und erweiterte Schwellenwerte.
-
Erweitertes Staggering
- Mit der integrierten
stagger-Utility lassen sich in Sekunden beeindruckende Effekte erzeugen. - Umfasst zeitliches Staggering, Werte-Staggering und Timeline-Positions-Staggering.
- Mit der integrierten
-
Spring- und Drag-Funktionen
- Über die Draggable API können HTML-Elemente gezogen, eingerastet, geschnippt und geworfen werden.
- Bietet vielfältige Einstellungen, umfassende Callbacks und nützliche Methoden.
-
Timeline-API
- Mit der leistungsstarken Timeline-API lassen sich Animationssequenzen steuern und Callbacks synchronisieren.
- Unterstützt Animationssynchronisierung, erweiterte Zeitpositionen und Wiedergabeeinstellungen.
-
Reaktive Animationen
- Mit der Scope API lassen sich leicht auf Media Queries reagierende Animationen erstellen.
- Umfasst Media Queries, benutzerdefinierte Root-Elemente und Scope-Methoden.
2 Kommentare
Wow, das ist unglaublich.
Hacker-News-Kommentare
https://animejs.com/documentation/scope/aufrufe, stürzt der Tab sofort ab. Das war direkt nach dem Scrollen durch die sehr beeindruckende Intro-Animation eine interessante Erfahrung.