スクロールイベントは、ページや要素のスクローリングに反応することができます。私たちがここでできることはたくさんあります。
例えば:
- ユーザーがドキュメント内のどこにあるかに応じて、追加のコントロールや情報を表示/非表示する。
- ユーザがページの下までスクロールしたときに追加のデータを読み込む。
ここに現在のスクロールを表示する小さい関数があります:
window.addEventListener('scroll', function() {
document.getElementById('showScroll').innerHTML = pageYOffset + 'px';
});
実行:
現在のスクロール = scroll the window
scroll イベントは window とスクロール可能な要素両方で動作します。
スクロールを防止する
どうやってスクロールをできなくするのでしょう? onscroll リスナの中で、event.preventDefault() によってスクロールを防止することはできません。なぜなら、それはスクロールがすでに行われた 後 にトリガされるからです。
しかし、スクロールを引き起こすイベントの event.preventDefault()によるスクロールを防ぐことができます。
例えば:
wheelイベント – マウスホイールの回転 (“スクロール” タッチパッドアクションもそれを生成します)- pageUp や pageDown のための
keydown
これは役立つ場合があります。しかし、他にもスクロールする方法があり、それらすべてを処理するのは非常に難しいです。そのため、何かをスクロールできないようにするには、 overflow プロパティのように CSS を使うのが、より信頼できる方法です。
ここでは、 onscroll 時のアプリケーションを解いたり、目を通すことができるタスクはほとんどありません。
コメント
<code>タグを使ってください。複数行の場合は<pre>を、10行を超える場合にはサンドボックスを使ってください(plnkr, JSBin, codepen…)。