Socket
Socket
Sign inDemoInstall

raf

Package Overview
Dependencies
1
Maintainers
2
Versions
24
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    raf

requestAnimationFrame polyfill for node and the browser


Version published
Weekly downloads
6.9M
increased by3.27%
Maintainers
2
Install size
20.7 kB
Created
Weekly downloads
 

Package description

What is raf?

The raf npm package provides a simple and efficient way to use requestAnimationFrame in web browsers, with polyfills for unsupported environments. It's primarily used for creating smooth animations and handling frame-based updates in web applications.

What are raf's main functionalities?

Basic Animation Loop

This demonstrates how to create a basic animation loop using raf. The `raf` function is called with a callback function (`tick`), which will be executed before the next repaint. The `tick` function then calls `raf` with itself to continue the loop.

var raf = require('raf');
raf(function tick() {
  // Animation or frame update logic here
  raf(tick);
});

Canceling an Animation Frame

This example shows how to schedule an animation frame and then cancel it. The `raf` function returns a handle that can be used with `raf.cancel` to prevent the scheduled callback from executing.

var raf = require('raf');
var handle = raf(function() {
  // Animation or frame update logic here
});
// Cancel the scheduled frame update
raf.cancel(handle);

Other packages similar to raf

Readme

Source

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

Keywords

FAQs

Last updated on 02 Nov 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc