
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
onscrolling
Advanced tools
A better, smoother, more performant window.onscroll event interface using requestAnimationFrame for performance and mobile-compatibility
A better, smoother, more performant onscroll event interface based on the concepts from this html5rocks tutorial. It uses requestAnimationFrame
plus debouncing for performance and mobile-compatibility (thanks to the touchmove
event), giving you a fighting chance to achieve the hallowed 60fps of lore with your scroll-listening UI.
The module is ESM-only and exports a single default onscrolling
function:
listener
function (payload: { scrollX: number; scrollY: number }) => void
The function to call on a scroll event with a { scrollX: number; scrollY: number }
payload object. In this default version, the module will only invoke the listener when the page has been scrolled vertically.
listener
function (payload: { scrollX: number; scrollY: number }) => void
The function to call on a scroll event with a { scrollX: number; scrollY: number }
payload object. The listener is invoked when the page is scrolled in any of the direction specified in the options
object (only once per event).
options
object { horizontal?: boolean; vertical?: boolean; x?: boolean; y?: boolean }
The scroll axis or axes to monitor. x
is an alias for horizontal
, and y
is an alias for vertical
. If neither horizontal nor vertical are true, vertical
is used as the default. To listen for any scroll event in any direction, set both horizontal
and vertical
to true
.
onscrolling
function (listener: Listener, options?: Options) => () => void
The onscrolling
function returns a cleanup function that takes no arguments and is used to remove the passed-in scroll event listener
.
None.
Out of the box, onscrolling uses requestAnimationFrame
, which is only available in IE10+. For older browsers, your scroll watchers simply won’t run. To add compatibility for those browsers, just include a requestAnimationFrame polyfill.
Tests use vitest + happy-dom, and can be run with yarn test
.
window
to monitor for scroll eventsmeasure
and mutate
functions to attach handlers specifically to the measuring (read) or mutating (write) portion of each cycle to minimize layout calculationsNote: This package was formerly known as jank-free-onscroll
FAQs
A better, smoother, more performant window.onscroll event interface using requestAnimationFrame for performance and mobile-compatibility
The npm package onscrolling receives a total of 0 weekly downloads. As such, onscrolling popularity was classified as not popular.
We found that onscrolling demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.