我有一个功能,在向上滚动时应该控制日志up
,在向下滚动时应该down
。
向下滚动工作正常,但向上滚动时,控制台会同时记录up
和down
。
为什么不向上滚动up
,因为滚动时只记录down
?
function scrollTest() {
var lastScrollTop = 0;
$(window).scroll(function(event) {
var st = $(this).scrollTop();
if (st > lastScrollTop){
console.log('down');
} else if (st < lastScrollTop) {
console.log('up');
}
lastScrollTop = st;
});
};
$( window ).on( "scroll", function() {
scrollTest();
});
答案 0 :(得分:1)
这解决了它:
var lastScrollTop = 0;
function scrollTest() {
$(window).scroll(function(event) {
var st = $(this).scrollTop();
if (st > lastScrollTop){
console.log('down ' + st + " | " + lastScrollTop);
lastScrollTop = st;
return 0;
}
if (st < lastScrollTop) {
console.log('up ' + st + " | " + lastScrollTop);
lastScrollTop = st;
return 0;
}
});
};
$( window ).on( "scroll", function() {
scrollTest();
});
问题是var lastScrollTop = 0;
在每个卷轴上获得值0 here is the fiddle
答案 1 :(得分:1)
将代码更改为
function scrollTest(){
var lastScrollTop = $(window).scrollTop();
$(window).scroll(function(event) {
var st = $(this).scrollTop();
if (st > lastScrollTop){
console.log('down');
} else if (st < lastScrollTop) {
console.log('up');
}
lastScrollTop = st;
});
}
$( window ).on( "scroll", function() {
scrollTest();
});
var lastScrollTop = 0
正在创建此问题。
意思是对其他答案或其作者没有冒犯,我觉得
拥有全局变量通常是一个坏主意。