【JavaScript】スクロールを終了した時に処理を実行する方法
JavaScriptでは、スクロールを終了した時のイベントを登録する方法はない。そのため、スクロールしている時のイベント( scroll )とsetTimeout関数を利用して対処する。
コード
let id = null;
const INTERVAL = 300;
const onEnded = function() {
// 処理
id = null;
};
const onScroll = function() {
clearTimeout( id );
id = setTimeout( onEnded, INVERTEL );
};
window.addEventListener( 'scroll', onScroll );
説明
スクロール中にスクロールしている時のイベント( scroll
)が起こるたび、setTimeout
関数を使用してスクロールを終了した時の処理( onEnded
)を予約する。この時、予約済みならばclearTimeout
関数で予約済みの処理を取り消す。
スクロールを終了すると、setTimeout
に指定した時間が経過後、最後に予約した処理が呼ばれる。これでスクロールを終了した時に処理を実行したことになる。