我有一个简单易懂的问题,但我似乎无法弄明白。每次用户滚动scrollTop更改。我想从scrollTop的新值中减去旧值。但是我如何存储旧值,所以我可以在用户停止滚动后从新值中减去它?必须有一个简单的方法。
$(function(){
$(window).scroll(function(){
var curTop = $(window).scrollTop();
var newTop = (curTop - curTop);
console.log(newTop);
});
});
这显然不起作用。你们有什么想法吗?
答案 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之间的差异后在每个滚动事件上更新它。