Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CaiJimmy/hugo-theme-stack.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/ts/smoothAnchors.ts11
1 files changed, 7 insertions, 4 deletions
diff --git a/assets/ts/smoothAnchors.ts b/assets/ts/smoothAnchors.ts
index 379eb39..46a4a03 100644
--- a/assets/ts/smoothAnchors.ts
+++ b/assets/ts/smoothAnchors.ts
@@ -21,12 +21,15 @@ function setupSmoothAnchors() {
aElement.addEventListener("click", clickEvent => {
clickEvent.preventDefault();
- let targetId = aElement.getAttribute("href").substring(1);
- // The replace done on ':' is here for footnotes, as this character would otherwise interfere when used as a CSS selector.
- let target = document.getElementById(targetId.replace(":", "\\:")) as HTMLElement;
+ const targetId = aElement.getAttribute("href").substring(1),
+ target = document.getElementById(targetId) as HTMLElement,
+ offset = target.getBoundingClientRect().top - document.documentElement.getBoundingClientRect().top;
window.history.pushState({}, "", aElement.getAttribute("href"));
- scrollTo({ top: target.offsetTop, behavior: "smooth" });
+ scrollTo({
+ top: offset,
+ behavior: "smooth"
+ });
});
});
}