scroll
イベントを使うと、ページや要素のスクロールに反応できます。これを使ってできることはたくさんあります。
例えば
- ドキュメント内のユーザーの位置に応じて、追加のコントロールや情報を表示/非表示にする。
- ユーザーがページの最後までスクロールすると、より多くのデータをロードする。
現在のスクロールを示す小さな関数を以下に示します。
window.addEventListener('scroll', function() {
document.getElementById('showScroll').innerHTML = window.pageYOffset + 'px';
});
実行例
現在のスクロール = ウィンドウをスクロールしてください
scroll
イベントは、window
とスクロール可能な要素の両方で動作します。
スクロールを防止する
どのようにしてスクロールできないようにするのでしょうか?
onscroll
リスナーで event.preventDefault()
を使用してもスクロールを防ぐことはできません。なぜなら、これはスクロールがすでに発生した後にトリガーされるからです。
しかし、スクロールを引き起こすイベント、たとえば pageUp や pageDown の keydown
イベントで event.preventDefault()
を使用することで、スクロールを防ぐことができます。
これらのイベントにイベントハンドラーを追加し、その中で event.preventDefault()
を実行すると、スクロールは開始されません。
スクロールを開始する方法はたくさんあるため、CSSの overflow
プロパティを使用する方が信頼性が高いです。
onscroll
の応用例を確認するために、いくつかの課題を解決するか、見てみましょう。
コメント
<code>
タグを使用し、数行の場合は<pre>
タグで囲み、10行以上の場合はサンドボックス(plnkr, jsbin, codepen…)を使用してください。