在jQuery中获取滚轮量

tsk*_*zzy 7 javascript jquery mousewheel

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

$(selector).scroll(function(e) {
    // get scroll amount
});
Run Code Online (Sandbox Code Playgroud)

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

是否有一个jQuery为此提供的标准化属性?

sni*_*ies 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;
});
Run Code Online (Sandbox Code Playgroud)

示例: jsFiddle


更新:

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