The Document scrollend event fires when the document view has finished scrolling. Learn how it differs from scroll, when gestures count as complete, how to use onscrollend, and five try-it labs.
01
Kind
Document event
02
Type
Event
03
Means
Scrolling finished
04
vs scroll
Settled, not continuous
05
Handler
onscrollend
06
Status
Baseline 2025
Fundamentals
Introduction
scroll is noisy—it fires many times while the page moves. scrollend answers a different question: has scrolling completed?
Per MDN, scrolling is complete when there are no more pending scroll-position updates and the user has finished their gesture. That is the right moment for snap follow-up, lazy cleanup, or analytics that should not run on every pixel of movement.
💡
Beginner tip
Touch panning and trackpad scrolling are not “done” until pointers or keys are released (MDN). If the scroll position never changed, scrollend does not fire.
Concept
Understanding Document scrollend
A Document event that answers: “Did the document view finish scrolling?”
Fires when the document view has completed scrolling (MDN).
Complete means no pending scroll updates + gesture finished.
Includes wheel, keyboard, scroll-snap, APIs, and other gestures that update scroll position.
Event type — a generic Event.
Handler — document.onscrollend or addEventListener("scrollend", ...).
Status — Baseline 2025 Newly available (since December 2025 on MDN).
Foundation
📝 Syntax
Use the event name with addEventListener, or set the handler property:
Document scrollend is marked Baseline 2025 on MDN (newly available since December 2025). Logos use the shared browser-image-sprite.png sprite from this project. Older browsers may lack support—feature-detect and provide a fallback.
✓ Baseline 2025
Document scrollend
Fires when the document view has completed scrolling (settled position + finished gesture).
B2025Newly available
Google ChromeSupported in current versions (check BCD)
Supported
Mozilla FirefoxSupported in current versions (check BCD)
Supported
Apple SafariSupported in current versions (check BCD)
Supported
Microsoft EdgeChromium · Baseline 2025 path
Supported
OperaFollow Chromium behavior
Supported
Internet ExplorerNo scrollend
Not supported
scrollendBaseline 2025
Bottom line: Use scrollend for settled-scroll work. Pair with scroll for live UI. Feature-detect onscrollend and fall back on older engines.
Wrap Up
Conclusion
scrollend is the settled-scroll signal for the document view. Use scroll for live feedback (throttled), and scrollend when work should wait until motion and gestures finish. Feature-detect for pre–Baseline 2025 browsers.
It fires when the document view has completed scrolling — when there are no more pending scroll position updates and the user has finished their gesture (MDN).
No. MDN marks Document scrollend as Baseline 2025 (newly available since December 2025). It is not Deprecated, Experimental, or Non-standard. Older browsers may still lack support, so feature-detect.
scroll fires continuously while the view moves. scrollend fires once when scrolling has settled. Prefer scrollend for idle cleanup, snap follow-up, or analytics that should not run on every tick.
MDN: if the scroll position did not change, no scrollend event fires. Also, touch/trackpad gestures are not complete until pointers or keys are released.
Yes. You can use document.onscrollend or document.addEventListener("scrollend", ...).
Use the Element scrollend event on that overflow element. Document scrollend is for the document view (page scroll).
Did you know?
Before scrollend, developers often faked “scroll stopped” with a debounced timer on scroll. The native event is more accurate for gestures and smooth scrolling—but a timer fallback is still useful on older browsers.