Runs the callback whenever the user has stopped scrolling.
- Use
EventTarget.addEventListener()
to listen for the'scroll'
event. - Use
setTimeout()
to wait150
ms until calling the givencallback
. - Use
clearTimeout()
to clear the timeout if a new'scroll'
event is fired in under150
ms.
代码实现
const onScrollStop = callback => {
let isScrolling;
window.addEventListener(
'scroll',
e => {
clearTimeout(isScrolling);
isScrolling = setTimeout(() => {
callback();
}, 150);
},
false
);
};
onScrollStop(() => {
console.log('The user has stopped scrolling');
});