You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VueRouter中scrollBehavior的savedPosition如何添加smooth平滑滚动

解决方案

直接在Promise resolve的位置对象中追加behavior: 'smooth'配置即可,Vue Router的scrollBehavior原生支持该滚动参数,会自动调用浏览器平滑滚动能力,不需要额外做其他适配。

修改后的代码:

scrollBehavior(to, from, savedPosition) {
  if (savedPosition) {
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve({
          ...savedPosition,
          behavior: 'smooth'
        });
      }, 1000);
    });
  }
  // 其余滚动场景可自行补充,例如默认回到顶部的逻辑
  return { top: 0, behavior: 'smooth' };
},

注意事项

  • behavior: 'smooth'是浏览器原生滚动API的标准配置,所有现代浏览器均已原生支持,无需引入第三方滚动库或额外polyfill
  • 如果页面存在图片、懒加载组件等异步渲染内容,1000ms的延迟可能仍然无法匹配真实DOM渲染完成时机,可根据实际业务调整延迟时长,或监听对应DOM渲染完成后再resolve滚动位置

内容的提问来源于stack exchange,提问作者FeckNeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:06:19