docs.rodeo

MDN Web Docs mirror

Element: scroll event

{{APIRef}} 

The scroll event fires when an element has been scrolled. To detect when scrolling has completed, see the {{domxref("Element/scrollend_event", "scrollend")}}  event of Element.

Syntax

Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}} , or set an event handler property.

addEventListener("scroll", (event) => {});

onscroll = (event) => {};

Event type

A generic {{domxref("Event")}} .

Examples

The following examples show how to use the scroll event with an event listener and with the onscroll event handler property. The {{DOMxRef("Window.setTimeout", "setTimeout()")}}  method is used to {{glossary("throttle")}}  the event handler because scroll events can fire at a high rate. For additional examples that use {{DOMxRef("Window.requestAnimationFrame()", "requestAnimationFrame()")}} , see the Document {{domxref("Document/scroll_event", "scroll")}}  event page.

Using scroll with an event listener

The following example shows how to use the scroll event to detect when the user is scrolling inside an element:

<div
  id="scroll-box"
  style="overflow: scroll; height: 100px; width: 100px; float: left;">
  <p style="height: 200px; width: 200px;">Scroll me!</p>
</div>
<p style="text-align: center;" id="output">Waiting on scroll events...</p>
const element = document.querySelector("div#scroll-box");
const output = document.querySelector("p#output");

element.addEventListener("scroll", (event) => {
  output.textContent = "Scroll event fired!";
  setTimeout(() => {
    output.textContent = "Waiting on scroll events...";
  }, 1000);
});

{{EmbedLiveSample("Using_scroll_with_an_event_listener", "100%", 120)}} 

Using onscroll event handler property

The following example shows how to use the onscroll event handler property to detect when the user is scrolling:

<div
  id="scroll-box"
  style="overflow: scroll; height: 100px; width: 100px; float: left;">
  <p style="height: 200px; width: 200px;">Scroll me!</p>
</div>
<p id="output" style="text-align: center;">Waiting on scroll events...</p>
const element = document.querySelector("div#scroll-box");
const output = document.querySelector("p#output");

element.onscroll = (event) => {
  output.textContent = "Element scroll event fired!";
  setTimeout(() => {
    output.textContent = "Waiting on scroll events...";
  }, 1000);
};

{{EmbedLiveSample("Using_onscroll_event_handler_property", "100%", 120)}} 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN