const scrollBehavior = (to, from, savedPosition) => {
return { x: 0, y: 0 }
}
const router = new VueRouter({
mode: 'history',
scrollBehavior,
routes
})
http://ip:port/Prayer/end --> http://ip:port/Prayer/all 想让页面回到顶部,但是都不行
const scrollBehavior = (to, from, savedPosition) => {
return { x: 0, y: 0 }
}
const router = new VueRouter({
mode: 'history',
scrollBehavior,
routes
})
http://ip:port/Prayer/end --> http://ip:port/Prayer/all 想让页面回到顶部,但是都不行
我也遇到这个问题,请问你解决了么?
@jinjinwa 作者应该没有时间处理这种问题,影响不大我就不管了,你可以去StackOverflow提问
router.beforeEach((to, from, next) => { document.body.scrollTop = 0; next() }); 在路由切换的时候手动 回到顶部了
const router = new VueRouter({
routes: [...],
scrollBehavior(to, from, savedPosition) {
return { x: 0, y: 0 }
}
})
实例化 vueRouter 的时候,提供 scrollBehavior 选项
router.beforeEach((to, from, next) => { document.body.scrollTop = 0; next() }); 在路由切换的时候手动 回到顶部了
@Maysjtu SSR 模式不可使用此方式,当触发路由之后,未跳转到下一个页面时,当前页面会回到顶端。
Router.afterEach((to, from) => { let bodySrcollTop = document.body.scrollTop if (bodySrcollTop !== 0) { document.body.scrollTop = 0 return } let docSrcollTop = document.documentElement.scrollTop if (docSrcollTop !== 0) { document.documentElement.scrollTop = 0 } })
这方法能解决pc端浏览器的问题,但是手机上的部分浏览器(三星自带的浏览器可以)依然回不到顶部。。
是不是有异步请求的问题?现在支持 async-scrolling 了:
scrollBehavior (to, from, savedPosition) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ x: 0, y: 0 })
}, 500)
})
}