【发布时间】:2013-02-22 06:20:31
【问题描述】:
我需要检测用户滚动的方向——“向上”或“向下”。基于此答案中的代码:How can I determine the direction of a jQuery scroll event?
我试图将它包装在一个函数中,这样它就更有区别了——但不幸的是,它不起作用。我认为这与我如何返回值有关,但方向始终是“向上”。作为 JavaScript 新手,我在解决这个问题时遇到了问题。
代码如下:
$(document).ready(function () {
'use strict';
var lastScrollTop = 0,
st,
direction;
function detectDirection() {
st = window.pageYOffset;
if (st > lastScrollTop) {
direction = "down";
} else {
direction = "up";
}
lastScrollTop = st;
return direction;
}
$(window).bind('scroll', function() {
detectDirection();
console.log(detectDirection());
});
});
我还设置了Fiddle。
您能帮我找出问题所在吗?
【问题讨论】:
-
我建议将您的函数和变量声明移到就绪函数之外。我不确定这是否能解决问题,但可能值得一试。
-
@AdamPlocher 感谢您的提示,但没有帮助。不过,这样做有什么普遍的优势吗?也许性能明智?
标签: javascript jquery scroll return code-structure