我正在开发一个小型应用程序,我想知道如何侦听滚动事件的“结束”。
我知道下面的代码允许我侦听滚动事件,但在我的例子中,我正在寻找一种方法,一旦用户停止滚动,就触发一个事件。
window.addEventListener('scroll', () => {
(!this.state.showScrollWidget) ? this.setState({showScrollWidget: true}) : null;
})
如果任何人有一个关于最好的方法来做它的想法我将感谢帮助,否则如果有任何第三方图书馆可能做的工作我也将感谢任何建议。
- 谢谢-谢谢
2条答案
按热度按时间ni65a41a1#
我不认为有任何事件通知你滚动停止。一般来说,你需要等待一段时间,直到最后一个滚动事件。通常你会使用去反跳操作-许多不同的实用程序库实现它,如lodash(https://lodash.com/docs/4.17.10#debounce):
oaxa6hgo2#
已使用
lodash debounce
解决问题。1.附加
onScroll
事件:endScroll
函数的useMemo
:1.处理滚动和结束滚动:
备注:
lodash
useMemo