summaryrefslogtreecommitdiffstats
path: root/src/scripts/lib/toc.ts
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2026-07-22 19:40:59 +0200
committerVolpeon <git@volpeon.ink>2026-07-22 19:40:59 +0200
commitc1e28224aa2e1450031669d9a7e359b63e04687d (patch)
tree68f3d8905c763a91f68001d868197effa92adafa /src/scripts/lib/toc.ts
downloadcorvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.tar.gz
corvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.tar.bz2
corvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.zip
Init
Diffstat (limited to 'src/scripts/lib/toc.ts')
-rw-r--r--src/scripts/lib/toc.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/scripts/lib/toc.ts b/src/scripts/lib/toc.ts
new file mode 100644
index 0000000..958f209
--- /dev/null
+++ b/src/scripts/lib/toc.ts
@@ -0,0 +1,14 @@
1export function mountToc() {
2 const observer = new IntersectionObserver((entries) => {
3 for (const entry of entries) {
4 const id = entry.target.getAttribute("id");
5 document
6 .querySelector(`.o-toc__item[href="#${id}"]`)
7 ?.classList.toggle("is-selected", entry.intersectionRatio > 0);
8 }
9 });
10
11 document.querySelectorAll("section[id]").forEach((section) => {
12 observer.observe(section);
13 });
14}