vue路由跳转时定位到页面顶部的方法
程序员文章站
2022-05-18 08:09:38
...
原
vue路由跳转时定位到页面顶部的方法汇总
背景:在做vue项目时,发现路由跳转之后,页面默认停留在当前浏览的位置,但是很多时候我们想要的是路由跳转之后,页面重新定位到顶部,下面介绍一下可以实现的方法:
方式一:
在main.js中添加以下代码即可:
-
router.beforeEach((to, from, next) => {
-
// chrome
-
document.body.scrollTop = 0
-
// firefox
-
document.documentElement.scrollTop = 0
-
// safari
-
window.pageYOffset = 0
-
next()
-
})
-
-
-
或者下面代码:
-
-
// 跳转后返回顶部
-
router.afterEach((to,from,next) => {
-
window.scrollTo(0,0);
-
})
方式二:如果需要某个页面跳转回顶部,仅需要在当前页面(page)合适的位置加入一下代码即可:
-
// chrome
-
document.body.scrollTop = 0
-
// firefox
-
document.documentElement.scrollTop = 0
-
// safari
-
window.pageYOffset = 0
方式三:在路由的index.js中,加入以下代码也可实现路由改变定位到顶部的效果,savedPosition当且仅当通过浏览器的前进/后退按钮触发时才可用,代码如下:
-
scrollBehavior(to, from, savedPosition) {
-
if (savedPosition) {
-
return savedPosition
-
}
-
return {
-
x: 0,
-
y: 0
-
}
-
}
推荐阅读
-
Vue 路由切换时页面内容没有重新加载的解决方法
-
Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决
-
Vue 路由切换时页面内容没有重新加载的解决方法
-
vue路由拦截及页面跳转的设置方法
-
VUE怎么解决路由跳转时及跳转到外部链接,再返回的页面缓存问题
-
Vue用户进行页面切换(路由跳转)时,动态改变路由的动画(transition效果)
-
Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决
-
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
-
VUE怎么解决路由跳转时及跳转到外部链接,再返回的页面缓存问题
-
vue路由在history模式下刷新时渲染页面无反映的处理方法