我有一个脚本可以监视滚动并控制滚动以根据某些参数为页面设置动画。为此,它调用window.scrollTo(0, currentScrollTop);
了完美地中断了 Windows 上 Firefox 中的平滑滚动。然后我可以将页面滚动到我想要的位置。
不幸的是,这个技巧在 MacOS 的浏览器中似乎不起作用,这导致 JavaScript 和浏览器竞争滚动窗口时体验被破坏。
有没有一种跨浏览器的方式来停止使用 JavaScript 平滑滚动?
有问题的网站使用效果: http: //capitalismis.com
相关(简化)代码:
$doc.on('scroll', function(e)
{
$doc.off('scroll');
window.scrollTo(0, $doc.scrollTop());
var aniSpeed = 1500 * Math.abs(scrollTop - selected.top) / windowHeight;
$body
.stop()
.animate({scrollTop: selected.top}, aniSpeed, 'easeOutQuad');
}
);