From eb22531d9e237abb1eb92dab87e89683c45ff1a3 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 6 Feb 2020 22:10:33 +0900 Subject: [PATCH] Resolve #5859 --- src/client/router.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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; + } +});