From c1e28224aa2e1450031669d9a7e359b63e04687d Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 22 Jul 2026 19:40:59 +0200 Subject: Init --- src/scripts/lib/toc.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/scripts/lib/toc.ts (limited to 'src/scripts/lib/toc.ts') 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 @@ +export function mountToc() { + const observer = new IntersectionObserver((entries) => { + for (const entry of entries) { + const id = entry.target.getAttribute("id"); + document + .querySelector(`.o-toc__item[href="#${id}"]`) + ?.classList.toggle("is-selected", entry.intersectionRatio > 0); + } + }); + + document.querySelectorAll("section[id]").forEach((section) => { + observer.observe(section); + }); +} -- cgit v1.3.1