This commit is contained in:
syuilo 2020-02-06 22:10:33 +09:00
parent 630c531d99
commit 9e68eefbb7

View file

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