nouveau-theatre-de-besancon/assets/js/script.js

51 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2024-09-06 14:39:21 +02:00
import { expandNav, closeNav, show } from "./functions.js";
2024-08-26 17:03:32 +02:00
document.addEventListener("DOMContentLoaded", () => {
2024-08-26 17:03:32 +02:00
// Variables
const nodes = {
burgerBtn: document.querySelector(".burger-btn"),
2024-09-19 09:27:24 +02:00
closeNavBtn: document.querySelector("#expanded-nav .close-btn"),
expandedNav: document.querySelector("#expanded-nav"),
main: document.querySelector("main"),
2024-08-27 15:03:19 +02:00
footer: document.querySelector(".main-footer"),
2024-08-28 12:15:41 +02:00
nav: document.querySelector(".main-nav"),
2024-09-02 17:09:53 +02:00
jsLinks: document.querySelectorAll(".js-link"),
};
2024-08-26 17:03:32 +02:00
// Listeners
nodes.burgerBtn.addEventListener("click", () => expandNav(nodes));
nodes.closeNavBtn.addEventListener("click", () => closeNav(nodes));
2024-09-02 17:09:53 +02:00
nodes.jsLinks.forEach((jsLink) => {
const to = jsLink.dataset.href;
jsLink.addEventListener("click", () => (location.href = to));
});
2024-08-27 14:34:07 +02:00
document.querySelectorAll("img").forEach((image) => {
if (image.complete && image.naturalWidth > 0) {
show(image);
} else {
image.addEventListener("load", () => show(image));
}
});
2024-09-06 14:39:21 +02:00
2024-08-27 14:34:07 +02:00
// Key shortcuts
window.addEventListener("keyup", (event) => {
if (event.key === "Escape") {
closeNav(nodes);
}
});
window.addEventListener("scroll", (event) => {
if (nodes.expandedNav.classList.contains("open")) {
closeNav(nodes);
}
2024-08-28 12:15:41 +02:00
if (
2024-11-04 14:16:16 +01:00
window.scrollY > 130 &&
2024-08-28 12:15:41 +02:00
!nodes.nav.classList.contains("main-nav--small")
) {
nodes.nav.classList.add("main-nav--small");
2024-11-04 14:16:16 +01:00
} else if (window.scrollY < 90) {
2024-08-28 12:15:41 +02:00
nodes.nav.classList.remove("main-nav--small");
}
2024-08-27 14:34:07 +02:00
});
2024-08-26 17:03:32 +02:00
});