From 9b35dfcde4c00e6f10b2631103f95e97cbf4af9e Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 16 Jun 2021 18:51:06 -0400 Subject: [PATCH] fix: avoid scroll behavior reliance on .nav-bar class --- src/client/app/components/Content.ts | 5 ++++- src/client/app/router.ts | 4 +--- src/client/theme-default/components/Page.vue | 6 +----- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/client/app/components/Content.ts b/src/client/app/components/Content.ts index 71883217..567e79a8 100644 --- a/src/client/app/components/Content.ts +++ b/src/client/app/components/Content.ts @@ -5,6 +5,9 @@ export const Content = defineComponent({ name: 'VitePressContent', setup() { const route = useRoute() - return () => (route.component ? h(route.component) : null) + return () => + h('div', { style: { position: 'relative' } }, [ + route.component ? h(route.component) : null + ]) } }) diff --git a/src/client/app/router.ts b/src/client/app/router.ts index a617dcea..b7261ab4 100644 --- a/src/client/app/router.ts +++ b/src/client/app/router.ts @@ -172,13 +172,11 @@ export function useRoute(): Route { } function scrollTo(el: HTMLElement, hash: string, smooth = false) { - const nav = document.querySelector('.nav-bar') - const pageOffset = nav ? (nav as HTMLElement).offsetHeight : 0 const target = el.classList.contains('.header-anchor') ? el : document.querySelector(decodeURIComponent(hash)) if (target) { - const targetTop = (target as HTMLElement).offsetTop - pageOffset - 15 + const targetTop = (target as HTMLElement).offsetTop // only smooth scroll if distance is smaller than screen height. if (!smooth || Math.abs(targetTop - window.scrollY) > window.innerHeight) { window.scrollTo(0, targetTop) diff --git a/src/client/theme-default/components/Page.vue b/src/client/theme-default/components/Page.vue index d789db74..7a1d422b 100644 --- a/src/client/theme-default/components/Page.vue +++ b/src/client/theme-default/components/Page.vue @@ -8,12 +8,8 @@ import NextAndPrevLinks from './NextAndPrevLinks.vue'
-
- -
- + -