Awesome
raf
requestAnimationFrame polyfill for node and the browser.
var raf = require('raf')
raf(function tick() {
// Animation logic
raf(tick)
})
Note: The stream/event emitter logic found in versions prior to 1.0.0 can be found in raf-stream.
Getting started
CommonJS (Node, Browserify, Webpack, etc.)
Install raf
from npm:
npm install --save raf
Require it like you would any other module:
const raf = require('raf')
AMD (require.js, etc)
Download the UMD-bundle from wzrd.in (remember to include the current version number in the filename).
Add it to your AMD module loader config and require it like you would any other module:
define(['raf'], raf => {...})
<script>
Download the UMD-bundle from wzrd.in (remember to include the current version number in the filename).
Then include it via a script tag:
<script src="raf-x.x.x.js"></script>
The API will be available on window.raf
.
API
Documentation at Mozilla Developer Network, W3 Specification
var handle = raf(callback)
callback
is the function to invoke in the next frame. handle
is a long integer value that uniquely identifies the entry in the callback list. This is a non-zero value, but you may not make any other assumptions about its value.
raf.cancel(handle)
handle
is the entry identifier returned by raf()
. Removes the queued animation frame callback (other queued callbacks will still be invoked unless cancelled).
raf.polyfill([object])
Shorthand to polyfill window.requestAnimationFrame
and window.cancelAnimationFrame
if necessary (Polyfills global
in node).
Alternatively you can require raf/polyfill
which will act the same as require('raf').polyfill()
.
If you provide object
the polyfills are attached to that given object, instead of the inferred global.
Useful if you have an instance of a fake window
object, and want to add raf
and caf
to it.
Acknowledgments
Based on work by Erik Möller, Paul Irish, and Tino Zijdel (https://gist.github.com/paulirish/1579671)
License
MIT