Skip to content

Commit 581ef1b

Browse files
committed
fix #109 and #137, hopefully
1 parent b29f5e1 commit 581ef1b

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

apps/svelte.dev/src/routes/docs/[...path]/OnThisPage.svelte

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
<script lang="ts">
22
import { afterNavigate } from '$app/navigation';
33
import type { Document } from '@sveltejs/site-kit';
4+
import { tick } from 'svelte';
45
56
let { content, document }: { content: HTMLElement; document: Document } = $props();
67
78
let headings: NodeListOf<HTMLHeadingElement>;
89
let current = $state('');
10+
let element: HTMLElement;
911
1012
afterNavigate(() => {
1113
current = location.hash.slice(1);
@@ -26,6 +28,14 @@
2628
next.getBoundingClientRect().top > threshold
2729
) {
2830
current = heading.id;
31+
32+
tick().then(() => {
33+
const active = element.querySelector('.active');
34+
active?.scrollIntoView({
35+
block: 'center'
36+
});
37+
});
38+
2939
break;
3040
}
3141
}
@@ -40,7 +50,7 @@
4050
On this page
4151
</label>
4252

43-
<nav>
53+
<nav bind:this={element}>
4454
<ul>
4555
<li>
4656
<a href="/{document.slug}" class:active={current === ''}>
@@ -146,12 +156,19 @@
146156
}
147157
148158
@media (min-width: 1200px) {
159+
width: calc(var(--sidebar-width) - var(--sk-page-padding-side));
160+
padding: 0;
161+
box-sizing: border-box;
149162
position: fixed;
163+
display: flex;
164+
flex-direction: column;
150165
top: 14rem;
151-
right: 0;
152-
width: var(--sidebar-width);
153-
padding: 0 var(--sk-page-padding-side) 0 0;
154-
box-sizing: border-box;
166+
left: calc(
167+
var(--sk-page-padding-side) + var(--sidebar-width) + var(--sk-line-max-width) +
168+
var(--sk-page-padding-side)
169+
);
170+
height: calc(100vh - 20rem);
171+
overflow: hidden;
155172
156173
input {
157174
display: none;
@@ -170,6 +187,8 @@
170187
171188
nav {
172189
display: block;
190+
height: 100%;
191+
overflow-y: auto;
173192
174193
li:first-child {
175194
display: list-item;

0 commit comments

Comments
 (0)