Lanzamiento de AnimeJs v4
(animejs.com)- Anime.js es una biblioteca de JavaScript rápida y versátil para animar cualquier cosa en la web
- La V4 fue reescrita por completo, mejorando notablemente el rendimiento y modernizando la API
- En particular, mejora la experiencia de desarrollo con soporte para ES Modules, optimización para tree shaking y mejor composición de animaciones complejas
Resumen de los principales cambios en Anime.js V4
-
Modularización en ES y cambios en la API
- Todas las funciones ahora se ofrecen como módulos ES (
anime()→animate()) - Favorece el tree shaking, por lo que es posible importar y usar solo las funciones necesarias
anime({ targets })→ cambia a la formaanimate(targets, params)
- Todas las funciones ahora se ofrecen como módulos ES (
-
Cambios principales en la API
easeInOutQuad→'inOutQuad'(se elimina el prefijo)- Cambio en los nombres de las funciones callback:
begin()→onBegin()update()→onUpdate()complete()→onComplete()change()→onRender()- Los callbacks relacionados con loops se unifican en
onLoop()
.finished→ cambia a.then()para el manejo con Promise{ value: 100 }→{ to: 100 }cambia la forma de expresar valoresround: 100→modifier: utils.round(2)permite modificar valores numéricos con más flexibilidad
-
Mejoras en la configuración y composición de animaciones
- El easing predeterminado cambia a
outQuad - Cuando se duplican animaciones de la misma propiedad sobre el mismo objetivo, por defecto se cancela el tween anterior (
composition: 'replace')composition: 'none'→ comportamiento de V3 (permite superposición)composition: 'add'→ permite aplicar animaciones aditivas
- El easing predeterminado cambia a
-
Cambios relacionados con la reproducción
direction: 'reverse'o'alternate'→ se separa enreversed: true,alternate: true, y ahora pueden usarse al mismo tiempoloop: 1→ el loop predeterminado cambia a 0
-
Mejoras en el sistema de Timeline
anime.timeline()→ cambia acreateTimeline()- En las animaciones hijas ya se pueden usar
loopyreversed - La propiedad
defaultspermite definir opciones comunes para los elementos hijos - Se agregan controles de tiempo más flexibles como
set(),label,stagger(), etc. - Las propiedades de transform de CSS fluyen de manera más natural entre animaciones hijas
-
Stagger y animaciones SVG
anime.stagger()→ ahora se importa y usastagger()directamenteanime.path()→ usarsvg.createMotionPath()- Propiedades SVG como
strokeDashoffsetypointsahora se manejan consvg.drawLine(),svg.morphTo(), etc.
-
Separación de funciones utilitarias
anime.get()→utils.get()anime.set()→utils.set()anime.remove()→utils.remove()anime.round()→utils.round()
-
Cambios en la configuración del motor
anime.suspendWhenDocumentHidden = false→engine.pauseWhenHidden = falseanime.speed = 0.5→engine.playbackRate = 0.5
-
Mejoras de rendimiento y estructura
- Refactorización completa del código para reducir el uso de memoria y mejorar el rendimiento
- Reescritura del sistema de tweens para reducir bugs en animaciones duplicadas
- Soporte para animaciones aditivas con
composition: 'add' - Mejor continuidad natural al componer transformaciones CSS
Nuevas funciones
- Soporte para animación de variables CSS: ej.
animate('#target', { '--radius': '20px' }) - Soporte para animaciones from: se puede usar la forma
{ from: 50, to: 100 } - Soporte para alpha en colores hex: por ejemplo, formato
#FF4433AA - Incorporación de
createTimer:- reemplaza
setTimeoutysetInterval - permite usar
onLoop,onUpdate,onComplete, etc. - se puede usar en game loops y casos similares ajustando
frameRate
- reemplaza
- Soporte para tasa de cuadros variable: se puede configurar individualmente por animación, timeline y timer
Características de Anime.js
-
API intuitiva
- Ofrece una API de animación potente y fácil de usar.
- Soporta parámetros por propiedad y un sistema flexible de keyframes.
- Incluye funciones de easing integradas y capacidades de transformación mejoradas.
-
Conjunto de herramientas SVG
- Sus utilidades SVG integradas permiten hacer fácilmente morphing de formas, seguimiento de motion paths y dibujo de líneas.
- Incluye morphing de formas, dibujo de líneas y motion path.
-
Scroll Observer
- Ofrece una API de Scroll Observer para sincronizar y activar animaciones según el scroll.
- Soporta varios modos de sincronización y umbrales avanzados.
-
Stagger avanzado
- La función utilitaria Stagger integrada permite crear efectos sorprendentes en segundos.
- Incluye stagger temporal, stagger de valores y stagger de posición en timelines.
-
Funciones de spring y drag
- La API Draggable permite arrastrar, ajustar, hacer flick y lanzar elementos HTML.
- Ofrece múltiples configuraciones, callbacks completas y métodos útiles.
-
API de Timeline
- La potente API de Timeline permite coordinar secuencias de animación y sincronizar callbacks.
- Soporta sincronización de animaciones, posiciones de tiempo avanzadas y opciones de reproducción.
-
Animaciones responsivas
- Con la API Scope es posible crear fácilmente animaciones que respondan a media queries.
- Incluye media queries, elementos raíz personalizados y métodos de scope.
2 comentarios
Guau, impresionante
Comentarios de Hacker News