7

スクロール イベントをオブジェクトにバインドした後、ユーザーがスクロールした量を取得するにはどうすればよいですか?

$(selector).scroll(function(e) {
    // get scroll amount
});

Firefox と Opera にはプロパティがありますdetailが、IE、Safari、Opera には がありwheelDataます。さらに悪いことに、Firefox と Opera は -3 から 3 のスケールで動作し、IE と Safari は -120 から 120 になります。

jQueryがこれのために提供する単一の正規化されたプロパティはありますか?

4

2 に答える 2

9

jQuery .scrollTop()を使用してスクロール イベント間の値を保存し、次のスクロール イベントでデルタを取得します。

var old_scroll_top = 0;

$(document).scroll(function() {
  var current_scroll_top = $(document).scrollTop();
  var scroll_delta = current_scroll_top - old_scroll_top;

  // do something with current_scroll_top and scroll_delta

  old_scroll_top = current_scroll_top;
});

例: jsFiddle


アップデート:

これは、scoll イベントに従って更新されるキャンバスを作成する方法を示す 2 番目の例です

于 2012-06-22T15:07:12.497 に答える
0

これにscrollTopを使用できますか?

var amount = $(window).scrollTop();
于 2012-06-22T15:09:24.943 に答える