Simple Animation Loop
Simple rAF wrapper to queue animations. This also provides a basic reimplementation of browser timer functions (setInterval
and setTimeout
) to prevent timers from affecting animation performance.
installation:
npm install --save simple_animation_loop
Documentation:
AnimationLoop
AnimationLoop
Kind: global class
-
AnimationLoop
- new AnimationLoop()
-
.start() ⇒
AnimationLoop
-
.stop() ⇒
AnimationLoop
-
.addAnimation(animation) ⇒
function
-
.removeAnimation(animation) ⇒
undefined
-
.setAnimationTimeout(animation, delay) ⇒
function
-
.setAnimationInterval(animation, delay) ⇒
function
new AnimationLoop()
The animation loop provides a wrapper for requestAnimationFrame and a reimplementation of browser timers. It can schedule multiple callbacks and help maximize performance for in browser animations.
AnimationLoop
animationLoop.start() ⇒ Starts the main animation loop and prevents multiple updates to requestAnimationFrame.
Kind: instance method of AnimationLoop
Returns: AnimationLoop
- this
AnimationLoop
animationLoop.stop() ⇒ Stops the main animation loop by calling cancelAnimationFrame.
Kind: instance method of AnimationLoop
Returns: AnimationLoop
- this
function
animationLoop.addAnimation(animation) ⇒ Adds a callback to the update loop and prevents the same callback from being added twice.
Kind: instance method of AnimationLoop
Returns: function
- animation - callback passed in
Param | Type | Description |
---|---|---|
animation | function |
callback that will be added to the main update loop. |
undefined
animationLoop.removeAnimation(animation) ⇒ Removes a callback from the current update loop and next scheduled loop.
Kind: instance method of AnimationLoop
Returns: undefined
- undefined
Param | Type | Description |
---|---|---|
animation | function |
callback that will be added to the main update loop. |
function
animationLoop.setAnimationTimeout(animation, delay) ⇒ Mimics browser's setTimeout basic functionality. Prevents browser timer from
degrading performance of the main update loop. It is recommended to use this over
setTimeout after .start()
has been called.
Kind: instance method of AnimationLoop
Returns: function
- timeout callback - returned so it can be canceled via removeAnimation()
Param | Type | Description |
---|---|---|
animation | function |
A function to be executed after the timer expires. |
delay | Number |
The time, in milliseconds (thousandths of a second), the timer should wait before the specified function is executed. |
function
animationLoop.setAnimationInterval(animation, delay) ⇒ Mimics browser's setInterval basic functionality. Prevents browser timer from
degrading performance of the main update loop. It is recommended to use this over
setInternal after .start()
has been called.
Kind: instance method of AnimationLoop
Returns: function
- interval callback - returned so it can be canceled via removeAnimation()
Param | Type | Description |
---|---|---|
animation | function |
A function to be executed every delay milliseconds. |
delay | Number |
The time, in milliseconds (thousandths of a second), the timer should delay in between executions of the specified function. |
examples of usage:
Please submit any issues via GitHub.
@morgantheplant