处理滚动停止事件
当用户停止滚动时运行回调函数。
- 使用
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('用户停止滚动');
});