jQuery / Javascript - 如何从新的scrolltop中减去旧的scrolltop

时间:2012-10-15 20:53:32

标签: javascript jquery scrolltop

我有一个简单易懂的问题,但我似乎无法弄明白。每次用户滚动scrollTop更改。我想从scrollTop的新值中减去旧值。但是我如何存储旧值,所以我可以在用户停止滚动后从新值中减去它?必须有一个简单的方法。

$(function(){
  $(window).scroll(function(){
      var curTop = $(window).scrollTop();
      var newTop = (curTop - curTop);
      console.log(newTop);  
   });
});

这显然不起作用。你们有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在函数范围之外定义oldScrollTop,在全局范围内,并在每次调用函数时更新它,在使用数据进行计算之后。

这样,“旧”值将在全局范围内从一个函数调用保存到另一个函数调用。在全局范围内,我的意思是在任何函数调用之外,甚至在jquery的document.ready

之外

答案 1 :(得分:0)

这应该有效:

$(function(){
  var curTop = $(window).scrollTop();
  $(window).scroll(function(){
      var newTop = $(window).scrollTop();
      var diff = newTop - curTop;
      curTop = newTop;
      console.log(diff);
   });
});

它将当前的scrollTop存储在curTop中,并在计算旧的和新的scrolltop之间的差异后在每个滚动事件上更新它。