You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.4 KiB
JavaScript
116 lines
3.4 KiB
JavaScript
window.addEventListener("scroll", function (e) {
|
|
if (document.querySelector("body").clientWidth > 767) {
|
|
let rightcolumn = document.querySelector(".rightcolumn");
|
|
let mantletitle =
|
|
document.querySelector(".mantletitle") ||
|
|
document.querySelector(".crusttitle") ||
|
|
false;
|
|
if (!mantletitle) {
|
|
return;
|
|
}
|
|
let mantlebar = document.querySelector(".mantlebar");
|
|
let grid = document.querySelector(".grid");
|
|
let gridrect = mantletitle.getBoundingClientRect();
|
|
|
|
if (
|
|
document.querySelector("body").clientHeight -
|
|
(grid.clientHeight + mantletitle.clientHeight + 32) <
|
|
window.innerHeight
|
|
) {
|
|
return;
|
|
}
|
|
|
|
if (gridrect.top < 20 && !grid.classList.contains("moved")) {
|
|
grid.classList.add("moved");
|
|
mantlebar.style.display = "inline";
|
|
mantletitle.style.visibility = "hidden";
|
|
} else if (gridrect.top > 21 && grid.classList.contains("moved")) {
|
|
grid.classList.remove("moved");
|
|
mantletitle.style.visibility = "visible";
|
|
mantlebar.style.display = "none";
|
|
}
|
|
} else {
|
|
let rightcolumn = document.querySelector(".rightcolumn");
|
|
let mantletitle =
|
|
document.querySelector(".mantletitle") ||
|
|
document.querySelector(".crusttitle") ||
|
|
false;
|
|
if (!mantletitle) {
|
|
return;
|
|
}
|
|
let mantlebar = document.querySelector(".mantlebar");
|
|
let grid = document.querySelector(".grid");
|
|
let gridrect = mantletitle.getBoundingClientRect();
|
|
|
|
if (gridrect.top < 20 && !grid.classList.contains("moved")) {
|
|
grid.classList.add("moved");
|
|
mantlebar.style.display = "inline";
|
|
mantletitle.style.visibility = "hidden";
|
|
} else if (gridrect.top > 21 && grid.classList.contains("moved")) {
|
|
grid.classList.remove("moved");
|
|
mantletitle.style.visibility = "visible";
|
|
mantlebar.style.display = "none";
|
|
}
|
|
}
|
|
});
|
|
|
|
window.addEventListener("DOMContentLoaded", (e) => {
|
|
let preview = document.querySelector("#preview");
|
|
if (
|
|
location.pathname.split("/").includes("_preview") ||
|
|
location.hash.startsWith("#/_edit")
|
|
) {
|
|
preview.style.display = "flex";
|
|
}
|
|
|
|
let par = document.querySelector(
|
|
"#TableOfContents > ol:first-child > li:first-child"
|
|
);
|
|
let s = document.createElement("span");
|
|
s.appendChild(par.cloneNode(true));
|
|
par.remove();
|
|
document
|
|
.querySelector("#TableOfContents > ol:first-child")
|
|
.insertBefore(
|
|
s,
|
|
document.querySelector("#TableOfContents > ol:first-child").firstChild
|
|
);
|
|
|
|
if (document.querySelector(".soundcite")) {
|
|
let relPath = "../".repeat(relPathDepth - 1);
|
|
|
|
var popcorn = document.createElement("script");
|
|
popcorn.src = `${relPath}js/popcorn.min.js`;
|
|
document.body.appendChild(popcorn);
|
|
|
|
var soundcite = document.createElement("script");
|
|
soundcite.src = `${relPath}js/soundcite.min.js`;
|
|
document.body.appendChild(soundcite);
|
|
}
|
|
|
|
document
|
|
.querySelectorAll(
|
|
"#TableOfContents a, .anchorz, .footnote-backref, .footnote-ref"
|
|
)
|
|
.forEach((i) => {
|
|
i.addEventListener("click", (e) => {
|
|
setTimeout(() => {
|
|
window.scrollBy({
|
|
top: document.querySelector(".header").clientHeight * -1.25,
|
|
behavior: "smooth",
|
|
});
|
|
}, 50);
|
|
});
|
|
});
|
|
});
|
|
|
|
toggleAllLinks = function () {
|
|
document.querySelectorAll("details").forEach((i) => {
|
|
if (i.open) {
|
|
i.removeAttribute("open");
|
|
} else {
|
|
i.setAttribute("open", true);
|
|
}
|
|
});
|
|
};
|