Please use animejs timelines instead.
A sequential animation building tool for the Anime.js library. Allowing for smooth, seamless, and modular animations.
$ npm install animejs
$ npm install animejs-builder
$ yarn add animejs
$ yarn add animejs-builder
<script src="https://cdn.jsdelivr.net/npm/animejs-builder@0.0.8/lib/AnimeBuilder.iife.min.js"></script>
import anime from 'animejs';
import AnimeBuilder from 'animejs-builder'
const moveHorizontal = (length, duration) => {
return {
translateX: [
{
value: length,
duration: duration,
easing: 'easeInOutQuad'
}
]
}
}
const builder = new AnimeBuilder({
targets: '.circle',
autoplay: true
});
const animation = builder
.add(moveHorizontal(200, 500))
.add(moveHorizontal('+=200', 800))
.add(moveHorizontal(0, 1000))
.generateAnime();
CodePen 🌀
-
Currently, properties must be defined in the array format
translateX: [ { value: length, duration: duration, easing: 'easeInOutQuad' } ]
The Anime Builder adds property placeholders, so each additional animation happens sequentially after the other.
For example, look at the following
const animation = builder
.add({
translateX: [
{value: 100, duration: 1000}
]
})
.add({
scaleX: [
{value: 5, duration: 500}
]
})
.generateAnime();
When scaleX is added. A placeholder value for scaleX is added with a duration of 500. Internally the values will look like this.
{
translateX: [
{value: 100, duration: 1000}
]
scaleX: [
{value: '*=1', duration: 1000},
{value: 5, duration: 500}
]
}
These placeholder values are added for any property in order to align each animation addition.
options - {Object}
They are AnimeJS config options: Anime JS Docs Here
description
Creates a new instance of AnimeBuilder
properties - {Object of Property Arrays}
1. i.e
{
translateX: [
{ value: 100, duration: 1000}
]
}
2. i.e
{
opacity: [
{ value: 100, duration: 1000}
],
rotateX: [
{ value: '80deg', duration: 800},
{ value: '0deg', duration: 400}
]
}
@returns - {current AnimeBuilder instance}
@returns { AnimeJS instance }
This generates the actual animejs animation.