このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Element: scroll イベント

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

scroll イベントは、要素がスクロールしたときに発行されます。 スクロールの終了を検出するには、 Elementscrollend イベントを参照してください。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

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

onscroll = (event) => {};

イベント型

一般的な Event です。

以下の例では、 scroll イベントをイベントリスナーと onscroll イベントハンドラープロパティによって使用する方法を示しています。 scroll イベントは高頻度で発行されるため、 setTimeout() メソッドを使用してイベントハンドラーをスロットルで制御しています。 その他の requestAnimationFrame を使用した例については、 Documentscroll イベントページを参照してください。

scroll をイベントリスナーで使用

次の例では、scroll イベントを使用して、ユーザーが要素の内部をスクロールしていることを検出する方法を示します。

html
<div
  id="scroll-box"
  style="overflow: scroll; height: 100px; width: 100px; float: left;">
  <p style="height: 200px; width: 200px;">スクロールしてね</p>
</div>
<p style="text-align: center;" id="output">scroll イベントを待っています...</p>
js
const element = document.querySelector("div#scroll-box");
const output = document.querySelector("p#output");

element.addEventListener("scroll", (event) => {
  output.textContent = "scroll イベントが発生しました!";
  setTimeout(() => {
    output.textContent = "scroll イベントを待っています...";
  }, 1000);
});

onscroll イベントハンドラープロパティの使用

次の例では、onscroll イベントハンドラープロパティを使用して、ユーザーがスクロールしていることを検出する方法を示しています。

html
<div
  id="scroll-box"
  style="overflow: scroll; height: 100px; width: 100px; float: left;">
  <p style="height: 200px; width: 200px;">スクロールしてね</p>
</div>
<p id="output" style="text-align: center;">scroll イベントを待っています...</p>
js
const element = document.querySelector("div#scroll-box");
const output = document.querySelector("p#output");

element.onscroll = (event) => {
  output.textContent = "scroll イベントが発生しました!";
  setTimeout(() => {
    output.textContent = "scroll イベントを待っています...";
  }, 1000);
};

仕様書

Specification
CSSOM View Module
# eventdef-document-scroll
HTML
# handler-onscroll

ブラウザーの互換性

関連情報