-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjavascript.js
More file actions
58 lines (49 loc) · 1.63 KB
/
javascript.js
File metadata and controls
58 lines (49 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const closeButton = document.querySelector(".close");
const printButton = document.querySelector(".print");
const panel = document.querySelector(".panel");
const panelContent = document.querySelector(".panel-content");
const selectables = document.querySelectorAll(".entry");
const panelCloseButton = document.getElementById("close-panel");
function hover(e) {
this.classList.add("hover");
}
function noHover(e) {
this.classList.remove("hover");
}
function showPanel(e) {
panel.classList.remove("inactive");
panel.classList.remove("hidden");
panel.classList.add("active");
if (panelContent.hasChildNodes()) {
panelContent.replaceChildren();
}
let panelFrame = document.createElement("iframe");
panelFrame.setAttribute("src", `./pages/${this.id}.html`);
panelContent.appendChild(panelFrame);
}
function hidePanel(e) {
panel.classList.remove("active");
panel.classList.add("hidden");
setTimeout(() => {
panel.classList.add("inactive");
}, 500)
}
selectables.forEach(function (selectable) {
selectable.addEventListener("mouseover", hover);
selectable.addEventListener("mouseout", noHover);
selectable.addEventListener("click", showPanel);
});
closeButton.addEventListener("click", () => {
const modal = document.querySelector(".modal");
modal.classList.add("hidden");
setTimeout(() => {
modal.style.display = "none";
}, 510)
})
panelCloseButton.addEventListener("click", hidePanel);
printButton.addEventListener("click", window.print);
window.addEventListener("beforeprint", () => {
selectables.forEach(function (selectable) {
noHover;
});
})