0.4.0 • Published 8 years ago
animazione v0.4.0
Animazione
simple easing animations using requestAnimationFrame
Features
- custom easing
- chainable animations
- optimized frame skip
- target fps
- animation completed callback
- loop
Install
$ npm install --save animazioneUsage
<div class="box"></div>const box = document.querySelector('.box');
const a = new Animazione({
render: renderLeft, // render function for each frame
target: box, // set the context to bind the render function to
duration: 400, // animation step duration
initialValue: 0, // initial value passed to render function
endValue: 500, // end value to be reached in the render function
easing: t => -0.5 * (Math.cos(Math.PI*t) - 1), // easing function
onComplete: () => { console.log('first finished') }, // callback on animation step completed
}).andThen({ // multiple steps can be chained
render: renderTop,
duration: 400,
initialValue: 0,
endValue: 500,
onComplete: () => { console.log('second finished') }
})
.loop() // a set of step animations can be looped forever
.start(); // start the animation
function renderLeft(val) {
this.style['left'] = val + 'px';
}
function renderTop(val) {
this.style['top'] = val + 'px';
}API
Class: Animazione
Create a new Animazione instance.
new Animazione(animation)animation
animation step
type: Object
render{function} Render function- Default:
noop
- Default:
target{Any} Context for the render function- Default:
null
- Default:
duration{integer} Step duration- Default:
0
- Default:
easing{function} Easing function- Default:
t => t(linear easing)
- Default:
initialValue- Default: {integer}
0
- Default: {integer}
endValue- Default: {integer}
1
- Default: {integer}
fps- Default: {integer}
60
- Default: {integer}
loop- Default: {boolean}
false
- Default: {boolean}
onComplete- Default: {function}
noop
- Default: {function}
Methods
start()Start the animation- Returns current Animazione instance
andThen(animation)Chain another animation stepanimationand animation step- Returns current Animazione instance
wait(duration)pause the animationduration{integer} pause duration in ms- Returns current Animazione instance
loop()Make the animation an infinite loop of all the currently defined steps- Returns current Animazione instance
stop()Stop the animation