iOS:-webkit-overflow-scrolling:touch 和 scrollTop
iOS: -webkit-overflow-scrolling:touch and scrollTop
我在尝试返回列表顶部时遇到了一些问题。
我把-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。 (修改了它们的实现以消除桌面浏览器上的滚动条重绘抖动)
我在尝试返回列表顶部时遇到了一些问题。
我把-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。 (修改了它们的实现以消除桌面浏览器上的滚动条重绘抖动)