处理滚动停止事件
当用户停止滚动时运行回调函数。
- 使用
EventTarget.addEventListener()监听'scroll'事件。 - 使用
setTimeout()等待150毫秒后调用给定的callback。 - 如果在
150毫秒内触发了新的'scroll'事件,则使用clearTimeout()清除定时器。
const onScrollStop = callback => {
let isScrolling;
window.addEventListener(
'scroll',
e => {
clearTimeout(isScrolling);
isScrolling = setTimeout(() => {
callback();
}, 150);
},
false
);
};
onScrollStop(() => {
console.log('用户停止滚动');
});