In JavaScript, the scrollend event fires when element scrolling has completed (MDN)—no more pending scroll updates and the user’s gesture is finished. It is a generic Event. Pair it with scroll for live updates vs a final stop.
Register a listener with addEventListener. Check readiness and browser support before you rely on this event.
Syntax
Listen for scrollend. Start with this line.
JavaScript
el.addEventListener("scrollend", fn)
Call
What it does
el.addEventListener("scrollend", fn)
Primary signature.
Built into the browser. Listen with el.addEventListener("scrollend", …) — no import required.
Library declarations
JavaScript
el.addEventListener("scrollend", fn)
Parameters
Parameter
Description
Scrolling element
Required. Target of the listener
Event
Required. Generic event object
Return Value
Return Value
Description
*
Fires as an Element event (listener receives the Event object).
JavaScript Examples
Example 1 — Feature Detect
Check support before relying on scrollend.
JavaScript
const supported = "onscrollend" in window;
console.log(supported);
if (!supported) {
console.log("Fall back to a throttled scroll timer");
}
Feature-detect first. Newly available APIs need a support check.
Wait for end. Avoid reading “final” values on every scroll tick.
Read the element. Position is on box.scrollTop, not a special event field.
Run settled work here. Lazy-load, snap UI, analytics — after motion stops.
Compatibility
Browser Support
Elementscrollend is Baseline Newly available on MDN (since December 2025). It works across the latest devices and browser versions, but may be missing on older ones — feature-detect and fall back when needed.
✓ Baseline · Newly available
Element scrollend
Fires when element scrolling has completed — stop signal after scroll.
NewBaseline Newly available
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
scrollendNewly available
Bottom line: Safe on current evergreen browsers. Detect support; for older engines, approximate with an idle timer after the last scroll event.
Frequently Asked Questions
It fires when element scrolling has completed—no more pending scroll position updates and the user’s gesture is finished (MDN). Use it for a stop signal, not continuous updates.
No. MDN marks Element scrollend as Baseline Newly available (since December 2025). It is not Deprecated, Experimental, or Non-standard. Feature-detect on older browsers.
A generic Event. Read the final scroll position from the element via scrollTop, scrollLeft, and related properties.
No. MDN: if the scroll position did not change, scrollend does not fire.
MDN: touch panning and trackpad scrolling are not complete until pointers or keys have been released.
scroll fires whenever the offset changes (often many times). scrollend fires once scrolling has finished. Pair them: scroll for live feedback, scrollend for final work.