🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

request-frame

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

request-frame

requestAnimationFrame & cancelAnimationFrame polyfill for optimal cross-browser development.

1.5.3
latest
Source
npm
Version published
Weekly downloads
946
4.42%
Maintainers
1
Weekly downloads
 
Created
Source

img

A comprehensive requestAnimationFrame & cancelAnimationFrame polyfill.

  • Supports ES6 - AMD - CJS & IIFE
  • Provides a clean polyfill for requestAnimationFrame & cancelAnimationFrame.
  • Tested & working on: IE 5.5+, FF 3+, Opera 11.16+, Safari 4+, Chrome 14+, iOS 3+, Android 2.3+, Android Chrome 28+.
  • iOS 6 bug fix without user-agent sniffing.
  • Firefox 4 - 10 function mismatch normalization.
  • Doesn't modify native functions unless specified.
  • AMD compliant.

Install options

npm i request-frame --save   |   bower i request-frame   |   src   |   release

import requestFrame from 'request-frame';  // ES6
<script src="request-frame.js"></script> // AMD, IIFE
const requestFrame = require('request-frame');  // CJS

The API:

Assign the timing functions:

requestFrame( request | cancel | native ) request is default.

var request = requestFrame('request'); // window.requestAnimationFrame | setTimeout
var cancel = requestFrame('cancel'); // window.cancelAnimationFrame | cancelTimeout

Or re/ assign native functions:

requestFrame('native'); // re/ declares requestAnimationFrame & cancelAnimationFrame

Below is just an example of the requestAnimationFrame API, see links: MDN, MSDN & W3.

Loop something:

var requestId;

function something( useTimeStamp ){
    
    // Do something here
    
    requestId = request(something); 
}

requestId = request(something); // Assigns Id & calls "something"

Cancel something:

cancel(requestId);  // Cancels frame request 

The ideology

request-frame aims to provide an optimal development consistency with the use of animation timing functions across the large number of browsers and devices. This lib is ideal for those who may want to avoid re-assigning native functions, or avoid interfering with other libs that do. requestFrame() is purposely not a constructor. The intention is for requestAnimationFrame to be used once or few times during execution since multiple task are expected to be more efficient via a single requestAnimationFrame loop compared to several instances.

Browsers tested & passing:

Supports everything from IE5+

Contribute

Just do it!

Test

npm run test To launch port 9999

  • ./test/
  • ./test/compatibility-assignation-amd.html
  • ./test/compatibility-assignation.html
  • ./test/compatibility-native-amd.html
  • ./test/compatibility-native.html

Browser based testing for RAF is imperative

Credits

Created by Julien Etienne, timestamp by Erik Möller, Paul Irish & Darius Bacon.

MIT License

© 2016 Julien Etienne

Keywords

requestAnimationFrame

FAQs

Package last updated on 16 Oct 2016

Did you know?

Socket

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