スクロール位置を監視して、スクロール開始、停止、スクロール中のイベントを実行します。
使い道はスクロール終了のイベントを取るくらい?
jQuery非依存。対象のDOMはとりあえずwindowのみ。
デモ:
ソース:
scroll_event.js
scroll_event.min.js(圧縮版)
ドキュメント
簡単な使い方の説明は↓
リスナーの追加、削除は
/**
* リスナーを追加する
*
* @param func {Function} リスナー
* @return {Boolean} 追加されたか
*/
WINDOW_APP.util.scrollMonitor.add(listener);
/**
* リスナーを削除する
*
* @param func {Function} リスナー
* @return {Boolean} 削除されたか
*/
WINDOW_APP.util.scrollMonitor.remove(listener);
リスナーで取得できるパラメーターは
/**
* スクロールの監視イベント
*
* @param params {Object} 監視中のパラメーター
* @param params.status {int} 0: スクロール停止した、1: スクロール開始した、2: スクロール中
* @param params.positionX {Number} 縦スクロールの位置
* @param params.positionY {Number} 横スクロールの位置
* @param params.deltaX {Number} 縦スクロールの移動量
* @param params.deltaY {Number} 横スクロールの移動量
*/
function onScroll (params) {
switch(params.status) {
case 0:
//スクロール停止したときの処理
break;
case 1:
//スクロール開始したときの処理
break;
case 2:
//スクロール中の処理
break;
}
}
リスナーの追加、削除で自動的に監視の開始/停止が走りますが、手動で処理したい場合は
/**
* モニターの開始(手動で実行する場合)
*
*/
WINDOW_APP.util.scrollMonitor.start();
/**
* モニターの停止(手動で実行する場合)
*
*/
WINDOW_APP.util.scrollMonitor.stop();