var befortop = 0;
window.addEventListener("scroll", function() {
var aftertop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;//兼容
if(aftertop - befortop > 0){
console.log('向下');
}else{
console.log('向上');
}
befortop = aftertop;
}, false);
获取滚动条主要难点是记录每次滚动条上一刻的位置和此刻的位置,会让初学者陷入误区,怎么在执行一次滚动拿到两个值。
这里在滚动事件外面定义一个变量 befortop 用来保存滚动条上一时刻的值。在滚动事件内获取滚动条此时此刻的值 aftertop ,然后将两者进行比较判断大小确定滚动方向,最后将aftertop 赋值给 befortop 。每次都是此刻的值和上一刻的值进行比较。