我正在尝试确定用户是向上还是向下滚动,我在一个不同的答案中找到了一些似乎可以帮助我的代码。我对这段代码的一个问题是我无法理解如何捕获last_scroll_position
。我设置的函数返回scrollTop
,因此获取变量current_position
的值不是问题,但获取last_scroll_position
的值似乎有点棘手。
以下是我找到的答案......
保留一个变量,比如last_scroll_position,当你有一个滚动时,如果是last_scroll_position - current_position> 0,用户向上滚动,如果小于0则向下滚动。
答案 0 :(得分:0)
我建议您查看此示例: stackoverflow.com/a/24815216...
scroll event 在Firefox中表现得很奇怪,由于平滑滚动,它被解雇了很多次,但它有效,这里有一个例子:
//creates an element to print the scroll position
$("<p id='test'>").appendTo("body").css({
padding: "5px 7px",
background: "#e9e9e9",
position: "fixed",
bottom: "35px",
left: "35px" });
//binds the "scroll" event
$(window).scroll(function (e) {
var target = e.currentTarget,
scrollTop = target.scrollTop || window.pageYOffset,
scrollHeight = target.scrollHeight || document.body.scrollHeight,
lastScrollTop = $(target).data("lastScrollTop") || 0,
scrollText = "";
if (scrollTop > lastScrollTop) {
scrollText = "<b>scroll down</b>";
} else {
scrollText = "<b>scroll up</b>";
}
$("#test").html(scrollText +
"<br>scrollTop: " + scrollTop +
"<br>lastScrollTop: " + lastScrollTop);
if (scrollHeight - scrollTop === $(target).innerHeight()) {
console.log("► End of scroll");
}
//saves the current scrollTop
$(target).data("lastScrollTop", scrollTop);
});