尝试返回列表顶部时遇到一些麻烦。

我将-webkit-overflow-scrolling:touch放在列表上以获得动量滚动。
但是,当我使用jQuery scrollTop();且动量滚动仍在进行时,它会跳到顶部,但不会停止动量。因此它继续下降直到动量结束。

有一种简单的方法可以阻止动量滚动吗?

最佳答案

将列表的-webkit-overflow-scrolling样式设置为'auto',然后在短暂的超时后返回'touch'


let scrollContainer = document.getElementById('yourListId');

scrollContainer.style['-webkit-overflow-scrolling'] = 'auto';  // stop scroll

setTimeout(function() {
       scrollContainer.scrollTop = 0;  // or jQuery scrollTop()
       scrollContainer.style['-webkit-overflow-scrolling'] = 'touch'; // re-enable
}, 2);

参考:this SO answer。 (修改了其实现,以消除滚动条在桌面浏览器上的重绘问题)

09-25 19:30