判断滚动条方向

之前遇到了这样一个问题,下滑滚动,到底加载数据,可是判断到底好判断,但是有时候在底向上滚动还是会触发条件,这时候就需要判断滚动的方向了,只有向下滚动才会触发数据请求。

这个代码的精髓就是利用了宏任务和微任务的特点而实现的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function scrollDirect() {
var last = 0;
document.getElementById("textarea").addEventListener("scroll", function (e) {
setTimeout(function () {
last = e.target.scrollTop;
}, 0);
console.log(last);
if (last > e.target.scrollTop) {
console.log("向上");
} else {
console.log("向下");
}
console.log(e.target.scrollTop);
console.log(e.target.scrollHeight);
});
}
scrollDirect();