Vue 路由跳转如何实现平滑滚动?scrollBehavior 配置项的使用指南

陌萱吖_2352

陌萱吖_2352

2026-04-13

289人浏览

原创

vue router 的 scrollbehavior 通过返回滚动对象(如 {top: 0}、{el: '#main'})控制跳转滚动位置,需配合 html {scroll-behavior: smooth} 实现平滑效果,并利用 savedposition 保留历史滚动位置。

vue 路由跳转如何实现平滑滚动?scrollbehavior 配置项的使用指南

Vue Router 的 scrollBehavior 是实现路由跳转时平滑滚动的核心配置,它让你能精确控制页面滚动位置,比如回到顶部、保留原位置或滚动到某个元素。关键在于正确返回一个滚动对象(含 top、left、behavior 等字段),并配合 CSS 的 scroll-behavior: smooth 实现视觉上的“平滑”效果。

基础用法:返回滚动坐标对象

在创建 router 实例时,通过 scrollBehavior 函数返回目标滚动位置:

  • 返回 { top: 0 } → 每次跳转都自动滚动到页面顶部
  • 返回 { top: 100 } → 滚动到距顶部 100px 处
  • 返回 { el: '#main' } → 滚动到 ID 为 main 的元素顶部(支持 CSS 选择器)
  • 返回 { left: 0, top: 0, behavior: 'smooth' } → 显式启用平滑动画(默认为 auto,无动画)

保留滚动位置:用 savedPosition 判断

当用户点击浏览器前进/后退按钮时,Router 会把上一次的滚动位置存入 savedPosition。你可以优先使用它,实现“返回即回到原位置”:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.2万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习