三种方法实现Vue路由跳转时自动定位在页面顶部

本文介绍了在Vue项目中解决路由切换时页面不会自动滚动到顶部的问题,提供了三种实现方法,包括在main.js或router.js中添加代码,以及在组件的mounted生命周期中处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做Vue项目的时候发现 当路由跳转时 页面是不会自动跳转到顶部的 而是停留在当前已滚动的距离

实现方法其实很简单 共有三种方法可实现页面自动跳转到顶部
在路由的main.js(router.js)里添加如下代码即可:

方法一:

// 跳转后自动返回页面顶部
router.afterEach(() => {
    window.scrollTo(0,0);
})

方法二:

const router = new VueRouter({
  routes:[...],
  scrollBehavior () {
    // return返回期望滚动到的位置的坐标
    return { x: 0, y: 0 }
  }
})

方法三:

router.beforeEach((to, from, next) => {    
    // chrome兼容
    document.body.scrollTop = 0
    // firefox兼容
    document.documentElement.scrollTop = 0
    // safari兼容
    window.pageYOffset = 0
    next()
})
使用示例:
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {...}
]

const router = new VueRouter({
  routes
})

export default router

// 跳转后返回页面顶部
router.afterEach(() => {
    window.scrollTo(0,0);
})

此外 还可在页面单独使用:

mounted生命周期添加相应的方法即可

<script>
export default {
mounted()
{
    // 跳转后返回页面顶部
    window.scrollTo(0,0);
}
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值