1. raf
requestAnimationFrame polyfill for node and the browser
raf
Package: raf
Created by: chrisdickinson
Last modified: Sat, 25 Jun 2022 09:54:00 GMT
Version: 3.4.1
License: MIT
Downloads: 29,183,602
Repository: https://github.com/chrisdickinson/raf

Install

npm install raf
yarn add raf

raf

Browser Support

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

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin