在jQuery中获取滚轮量

时间:2012-06-22 15:04:54

标签: javascript jquery mousewheel

将滚动事件绑定到对象后,如何获取用户滚动的数量?

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

Firefox和Opera的属性为detail,而IE,Safari和Opera的属性为wheelData。更糟糕的是,Firefox和Opera的运行范围为-3到3,IE和Safari从-120到120.

jQuery是否提供了一个规范化的属性?

2 个答案:

答案 0 :(得分: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


更新

Here是第二个示例,它显示了如何根据scoll事件更新画布。

答案 1 :(得分:0)

你可以使用scrollTop吗?

var amount = $(window).scrollTop();