向上滚动触发滚动起来
问题描述:
当两个向上和向下我有向上滚动时,向下滚动时应该控制台登录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();
});
答
更改为
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
正在创建该问题。 意味着没有冒犯对方的回答或它的作者,我觉得 它通常是一个坏主意,有一个全局变量。
答
此修复:
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