vueルーティングジャンプ時に新しいページに入りますが、位置は上部にありません.

905 ワード

(1)問題の背景
ルーティングジャンプ時に新しいページに入りますが、位置は上部ではなく、前のページで閲覧した位置で、新しいページに入るたびにページの上部に位置させたいと思っています.
方式一
main.js
router.beforeEach((to, from, next) => {

// chrome

document.body.scrollTop = 0

// firefox

document.documentElement.scrollTop = 0

// safari

window.pageYOffset = 0

next()

})

ページングをクリックするたびに、ページも前に閲覧した位置にとどまり、インタフェースを調整した後も次のコードを数行加えるとよい.
// chrome

document.body.scrollTop = 0

// firefox

document.documentElement.scrollTop = 0

// safari

window.pageYOffset = 0

方式2
router-index.js
const router = new VueRouter({
routes: [...],
scrollBehavior (to, from, savedPosition) {
// return           
return { x: 0, y: 0 }
}
})

 
あるいは
scrollBehavior (to, from, savedPosition) {

if (savedPosition) {

return savedPosition

} else {

return { x: 0, y: 0 }

}

}