Sortie d’AnimeJs v4
(animejs.com)- Anime.js est une bibliothèque JavaScript rapide et polyvalente qui permet d’animer à peu près tout sur le web
- La v4 a été entièrement réécrite, avec de fortes améliorations de performances et une API modernisée
- L’expérience développeur a notamment été améliorée grâce à la prise en charge des ES Modules, à une meilleure optimisation du tree shaking et à une composition d’animations complexes plus aboutie
Résumé des principaux changements d’Anime.js V4
-
Modularisation ES et changements d’API
- Toutes les fonctionnalités sont désormais fournies sous forme d’ES modules (
anime()→animate()) - Cela favorise le tree shaking et permet de n’importer que les fonctionnalités nécessaires
anime({ targets })→animate(targets, params)
- Toutes les fonctionnalités sont désormais fournies sous forme d’ES modules (
-
Principaux changements de l’API
easeInOutQuad→'inOutQuad'(suppression du préfixe)- Changement des noms de fonctions de rappel :
begin()→onBegin()update()→onUpdate()complete()→onComplete()change()→onRender()- Les callbacks liés aux boucles sont regroupés en une seule fonction
onLoop()
.finished→.then()pour la gestion des Promise{ value: 100 }→{ to: 100 }pour exprimer les valeursround: 100→modifier: utils.round(2)pour une modification des valeurs plus souple
-
Améliorations dans la composition et l’assemblage des animations
- La valeur d’easing par défaut devient
outQuad - En cas de doublon d’animation sur la même propriété d’une même cible, le tween précédent est annulé par défaut (
composition: 'replace')composition: 'none'→ comportement de la v3 (imbrication autorisée)composition: 'add'→ permet des animations additives
- La valeur d’easing par défaut devient
-
Changements liés au mode de lecture
direction: 'reverse'ou'alternate'→ séparation enreversed: trueetalternate: true, pouvant être utilisés en même tempsloop: 1→ la boucle par défaut passe désormais à 0
-
Améliorations du système de timeline
anime.timeline()→createTimeline()- Les animations enfants peuvent utiliser
loopetreversed - La propriété
defaultspermet de définir des options communes pour les animations enfants - Ajout de contrôles temporels plus souples avec
set(),label,stagger(), etc. - Les propriétés CSS transform s’enchaînent plus naturellement entre les animations enfants
-
Stagger et animation SVG
anime.stagger()→ import direct destagger()anime.path()→ utilisation desvg.createMotionPath()- Les propriétés SVG comme
strokeDashoffsetetpointssont aussi gérées viasvg.drawLine(),svg.morphTo(), etc.
-
Séparation des fonctions utilitaires
anime.get()→utils.get()anime.set()→utils.set()anime.remove()→utils.remove()anime.round()→utils.round()
-
Changements dans la configuration du moteur
anime.suspendWhenDocumentHidden = false→engine.pauseWhenHidden = falseanime.speed = 0.5→engine.playbackRate = 0.5
-
Améliorations de performances et de structure
- Refactorisation complète du code avec une baisse de l’utilisation mémoire et de meilleures performances
- Réécriture du système de tween pour réduire les bugs lors d’animations dupliquées
- Prise en charge des animations additives avec
composition: 'add' - Meilleure continuité dans la composition des CSS Transform
Nouvelles fonctionnalités
- Prise en charge de l’animation des variables CSS : ex.
animate('#target', { '--radius': '20px' }) - Prise en charge des animations from : utilisation possible du format
{ from: 50, to: 100 } - Prise en charge de l’alpha dans les couleurs hex : ex. format
#FF4433AA - Introduction de
createTimer:- Alternative à
setTimeoutetsetInterval - Prise en charge de
onLoop,onUpdate,onComplete, etc. - Possibilité d’utilisation pour des boucles de jeu via le réglage de
frameRate
- Alternative à
- Prise en charge d’une fréquence d’images variable : configuration possible séparément pour chaque animation, timeline ou timer
Caractéristiques d’Anime.js
-
API intuitive
- Fournit une API d’animation puissante tout en restant simple à utiliser.
- Prend en charge des paramètres par propriété et un système de keyframes flexible.
- Propose des fonctions d’easing intégrées et des transformations améliorées.
-
Boîte à outils SVG
- Les utilitaires SVG intégrés facilitent la transformation de formes, le suivi de motion paths et le dessin de lignes.
- Inclut la transformation de formes, le dessin de lignes et les motion paths.
-
Observateur de scroll
- Fournit une API Scroll Observer pour synchroniser et déclencher les animations en fonction du défilement.
- Prend en charge différents modes de synchronisation et des seuils avancés.
-
Stagger avancé
- La fonction utilitaire Stagger intégrée permet de créer en quelques secondes des effets impressionnants.
- Inclut le décalage temporel, le décalage de valeurs et le décalage de position dans la timeline.
-
Ressorts et glisser-déposer
- L’API Draggable permet de faire glisser, d’aimanter, de flicker et de lancer des éléments HTML.
- Propose de nombreux réglages, des callbacks complets et des méthodes utiles.
-
API Timeline
- Une API timeline puissante permet d’orchestrer des séquences d’animation et de synchroniser les callbacks.
- Prend en charge la synchronisation des animations, les positions temporelles avancées et les paramètres de lecture.
-
Animations responsives
- L’API Scope permet de créer facilement des animations réactives aux media queries.
- Inclut les media queries, des éléments racine personnalisés et des méthodes de scope.
2 commentaires
Waouh, c’est énorme.
Avis sur Hacker News