
Product
Reachability for Ruby Now in Beta
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.
raf-plus is the same as window.requestAnimationFrame but better, which will only invokes the passed function at most once per animation frame.
The
window.requestAnimationFramemethod tells the browser that you wish to perform an animation and requests that the browser call a specified function to update an animation before the next repaint.
-- MDN
However, it does not manage the queue. For example:
const heavyAnimation = () => {
// A animation function with heavy operations
}
document.addEventListener('scroll', e => requestAnimation(heavyAnimation), false)
The scroll event may fire more than once within one frame, so the heavyAnimation function may be called more than once before next repaint, but repetitively call heavyAnimation at one animation frame is unnecessary and waste of resources!!!
The raf-plus help you manage requestAnimation's queue by ignoring the duplicate callback function in same animation frame. For comparison:
const { requestAnimationFrame } from 'raf-plus'
const animationTwice = () => console.log('I will be invoked twice!')
const animationOnce = () => console.log('Although call twice, I will be invoked once')
// call same animation within one animation frame
// lead to animation twice
window.requestAnimationFrame(animationTwice)
window.requestAnimationFrame(animationTwice)
// call same animation within one animation frame
// but only invoke once
requestAnimationFrame(animationOnce)
requestAnimationFrame(animationOnce)
$ npm install --save raf-plus
or
$ yarn add raf-plus
The raf-plus only exports two methods
requestAnimationFrame(callback)The same as requestAnimationFrame. Be aware that raf-plus uses === operator to compare two callbacks, so passing anonymous function won't invoke the management!
const { requestAnimationFrame } from 'raf-plus'
const animation = timeStamp => {
// animation
}
// animation will be invoked once within one frame
requestAnimationFrame(animation)
requestAnimationFrame(animation)
// animation will be invoked twice cause the function are not equal
requestAnimationFrame(timeStamp => { /* animation */})
requestAnimationFrame(timeStamp => { /* animation */})
cancelAnimationFrame(callback)The same as cancelAnimationFrame.
const { requestAnimationFrame, cancelAnimationFrame } from 'raf-plus'
const animation = timeStamp => {
// animation
}
const requestId = requestAnimationFrame(animation)
cancelAnimationFrame(requestId)
MIT
FAQs
better requestAnimationFrame
The npm package raf-plus receives a total of 2 weekly downloads. As such, raf-plus popularity was classified as not popular.
We found that raf-plus demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.

Research
/Security News
Malicious npm packages use Adspect cloaking and fake CAPTCHAs to fingerprint visitors and redirect victims to crypto-themed scam sites.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.