// Setup isScrolling variable var isScrolling; // Listen for scroll events window.addEventListener('scroll', function ( event ) { // Clear our timeout throughout the scroll window.clearTimeout( isScrolling ); // Set a timeout to run after scrolling ends isScrolling = setTimeout(function() { // Run the callback console.log( 'Scrolling has stopped.' ); }, 66); }, false); 网上找了个教程,大概思路是这样的,设置一个超时器,每次滚动的时候就重置这个超时器,只有当停止滚动并等待大概66ms的时候才会运行超时器里面的回调函数。把setData放在里面就能够实现滚动停止“一段时间”之后再去setData。
如何在onPageScroll停止的时候再setData?[代码]onPageScroll: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]// Do something when page scroll[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]scrollTop: res.scrollTop[代码][代码] [代码][代码]})[代码][代码]},[代码]这样做影响性能啊,而且没必要,如何在滚动结束的时候只进行一次setData???
2020-02-07