feat: improve how aside section stick and scrolls

pull/654/head
Kia King Ishii 2 years ago
parent 220320bcdb
commit b8c76ba47b

@ -17,8 +17,8 @@ const pageName = computed(() => {
<div class="VPDoc" :class="{ 'has-sidebar': hasSidebar }"> <div class="VPDoc" :class="{ 'has-sidebar': hasSidebar }">
<div class="container"> <div class="container">
<div class="aside"> <div class="aside">
<div class="aside-curtain" />
<div class="aside-container"> <div class="aside-container">
<div class="aside-curtain" />
<div class="aside-content"> <div class="aside-content">
<VPDocOutline v-if="page.headers" /> <VPDocOutline v-if="page.headers" />
</div> </div>
@ -113,11 +113,12 @@ const pageName = computed(() => {
} }
.aside-container { .aside-container {
position: fixed; position: sticky;
top: var(--vp-nav-height-desktop); top: 0;
bottom: 0; margin-top: calc(var(--vp-nav-height-desktop) * -1 - 32px);
padding-top: 32px; padding-top: calc(var(--vp-nav-height-desktop) + 32px);
width: 208px; width: 208px;
max-height: 100vh;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
} }
@ -133,12 +134,12 @@ const pageName = computed(() => {
} }
.aside-curtain { .aside-curtain {
position: fixed; position: absolute;
top: var(--vp-nav-height-desktop); bottom: 0;
z-index: 10; z-index: 10;
width: 100%; width: 100%;
height: 40px; height: 64px;
background: linear-gradient(var(--vp-c-bg-content), transparent); background: linear-gradient(transparent, var(--vp-c-bg-content));
} }
.aside-content { .aside-content {

Loading…
Cancel
Save