在工作中,发现路由跳转时,滚动条会停留在原始位置,用户体验感不好。
以this.$router.push方式的路由跳转为例:
方法一:逐个添加
1.直接在路由跳转代码的后面加两行代码:
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
方法二:路由后置守卫
1.在配置路由的文件中放置全局后置守卫:
//全局后置守卫
router.afterEach(() => {
window.scrollTo(0, 0) //滚动条至于浏览器顶部
})
介绍:Window.scrollTo()
//语法:
window.scrollTo(x-coord,y-coord )
window.scrollTo(options)
//参数:
x-coord 是文档中的横轴坐标。
y-coord 是文档中的纵轴坐标。
options 是一个包含三个属性的对象:
top等同于y-coord
left等同于x-coord
behavior为滚动行为:smooth(平滑滚动),instant(瞬间滚动)