vue路由跳转定位到页面顶部无效
时间: 2023-10-04 21:10:49 浏览: 107
解决vue单页路由跳转后scrollTop的问题
在 Vue 路由跳转时,有时候会遇到定位到页面顶部无效的问题。这是因为在路由跳转时,Vue 的默认行为是不会改变页面滚动位置的,而是会保持原来的滚动位置。如果你需要在路由跳转时将页面滚动到顶部,可以使用以下两种方法:
1. 使用 `scrollBehavior` 方法
在 Vue 的路由配置文件中,可以通过 `scrollBehavior` 方法来控制路由跳转后的滚动位置。例如,以下代码可以让每次路由跳转后滚动到页面顶部:
```js
const router = new VueRouter({
mode: 'history',
routes: [...],
scrollBehavior (to, from, savedPosition) {
return { x: 0, y: 0 }
}
})
```
2. 在路由跳转后手动设置滚动位置
在路由跳转后,你可以手动设置页面滚动位置。例如,以下代码可以让每次路由跳转后滚动到页面顶部:
```js
const router = new VueRouter({
mode: 'history',
routes: [...],
})
router.afterEach((to, from) => {
window.scrollTo(0, 0)
})
```
以上两种方法都可以解决路由跳转时定位到页面顶部无效的问题。你可以根据自己的需求选择其中一种方法来实现。
阅读全文