Files
2026-08-30 19:17:22 +02:00

94 lines
1.6 KiB
JavaScript

function StartSubNavbar() {
const SubNavbar =
document.querySelector(
".SubNavbar"
);
if (SubNavbar === null) {
return;
}
const Links = [
...SubNavbar.querySelectorAll(
".SubNavbarLink"
)
];
const AnchorLinks =
Links.filter(
Link =>
Link.getAttribute(
"href"
)?.startsWith("#")
);
function SetCurrentLink(
CurrentLink
) {
for (
const Link
of AnchorLinks
) {
Link.removeAttribute(
"aria-current"
);
}
if (CurrentLink !== null) {
CurrentLink.setAttribute(
"aria-current",
"location"
);
}
}
function UpdateFromHash() {
if (location.hash === "") {
return;
}
const CurrentLink =
AnchorLinks.find(
Link =>
Link.getAttribute(
"href"
) === location.hash
) ?? null;
SetCurrentLink(
CurrentLink
);
}
for (
const Link
of AnchorLinks
) {
Link.addEventListener(
"click",
() => {
SetCurrentLink(
Link
);
}
);
}
window.addEventListener(
"hashchange",
UpdateFromHash
);
UpdateFromHash();
}
document.addEventListener(
"DOMContentLoaded",
StartSubNavbar
);