vueルーティングジャンプ時に新しいページに入りますが、位置は上部にありません.
905 ワード
(1)問題の背景
ルーティングジャンプ時に新しいページに入りますが、位置は上部ではなく、前のページで閲覧した位置で、新しいページに入るたびにページの上部に位置させたいと思っています.
方式一
main.js
ページングをクリックするたびに、ページも前に閲覧した位置にとどまり、インタフェースを調整した後も次のコードを数行加えるとよい.
方式2
router-index.js
あるいは
ルーティングジャンプ時に新しいページに入りますが、位置は上部ではなく、前のページで閲覧した位置で、新しいページに入るたびにページの上部に位置させたいと思っています.
方式一
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 }
}
}