diff --git a/src/client/router.ts b/src/client/router.ts index 82451260c..16ab96dea 100644 --- a/src/client/router.ts +++ b/src/client/router.ts @@ -6,6 +6,8 @@ Vue.use(VueRouter); const page = (path: string) => () => import(`./pages/${path}.vue`).then(m => m.default); +let indexScrollPos = 0; + export const router = new VueRouter({ mode: 'history', routes: [ @@ -55,13 +57,19 @@ export const router = new VueRouter({ // なんかHacky // 通常の使い方をすると scroll メソッドの behavior を設定できないため、自前で window.scroll するようにする // setTimeout しないと、アニメーション(トランジション)の関係でうまく動かない - scrollBehavior(to, from, savedPosition) { + scrollBehavior(to) { window._scroll = () => { // さらにHacky - if (savedPosition) { - window.scroll({ top: savedPosition.y, behavior: 'instant' }); + if (to.name === 'index') { + window.scroll({ top: indexScrollPos, behavior: 'instant' }); } else { window.scroll({ top: 0, behavior: 'instant' }); } }; } }); + +router.afterEach((to, from) => { + if (from.name === 'index') { + indexScrollPos = window.scrollY; + } +});