Chrome和Edge中window.scroll平滑滚动至顶部失效问题求助
平滑滚动至顶部在Chrome/Edge中失效的问题与优化需求
我在Google Chrome(版本21.0.6167.140 官方版64位)和Edge浏览器中,使用以下代码实现平滑滚动至顶部时出现异常:
window.scroll({ top: 0, behavior: 'smooth' });
调用该代码后,并非总能滚动到页面顶部,多数情况下仅滚动一部分就停止。Firefox浏览器无此问题。
为临时解决该问题,我编写了递归重试的代码:
function backToTheTop() { let scrollListener = window.scrollY; window.scrollTo({ top: 0, behavior: 'smooth' }); setTimeout(function () { if (window.scrollY !== 0) { backToTheTop(); } }, 200); }
但这个方案引发了新问题:移动端浏览器滚动缓慢,且在自动滚动至顶部过程中,若用户手动向下滚动,页面仍会强制继续向上滚动。
请问是否有人遇到过类似问题并知晓更优的解决办法?
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

