1. 開発者向けのウェブ技術
  2. Web API
  3. Document
  4. scroll

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

View in English Always switch to English

Document: scroll イベント

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

scroll イベントは、文書のビューまたは要素がスクロールされたときに発生します。 スクロールが完了したことを検出するには、 Document: scrollend イベントを参照してください。 要素のスクロールには、 Element: scroll イベントを参照してください。

構文

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

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

イベント型

一般的な Event です。

スクロールイベントの間引き

scroll イベントは高い確率で生じることができるため、イベントハンドラーは DOM の変更といった計算上の処理コストの高い操作を実行すべきではありません。その代わり、次のように requestAnimationFrame()setTimeout()CustomEvent などを使ってイベントを間引くことをお勧めします。

ただし、入力イベントやアニメーションフレームは同じような割合で発生するため、そのため下記のような最適化は不要の場合が多いことに注意してください。 この例では requestAnimationFramescroll イベントを最適化しています。

js
let lastKnownScrollPosition = 0;
let ticking = false;
function doSomething(scrollPos) {
 // 子のスクロール位置で何かを行う
}
document.addEventListener("scroll", (event) => {
 lastKnownScrollPosition = window.scrollY;
 if (!ticking) {
 window.requestAnimationFrame(() => {
 doSomething(lastKnownScrollPosition);
 ticking = false;
 });
 ticking = true;
 }
});

仕様書

仕様書
CSSOM View Module
# eventdef-document-scroll
HTML
# handler-onscroll

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /