hic-et-nunc/assets/js/project-toggle.js
Camilledenoray 9a615bd92d
All checks were successful
Deploy / Deploy to Production (push) Successful in 5s
Index > Fix vidéos non prise en charges dans le slider
2026-06-17 12:25:23 +02:00

49 lines
1.4 KiB
JavaScript

const allProjects = document.querySelectorAll(".projects-index li.project");
function selectProject(slug) {
if (!slug) {
allProjects.forEach((p) => p.classList.remove("selected"));
return;
}
const target = [...allProjects].find((p) => p.dataset.slug === slug);
if (!target) return;
allProjects.forEach((p) => {
p.classList.remove("selected");
});
target.classList.add("selected");
}
allProjects.forEach((currentProject) => {
currentProject.querySelector("button").addEventListener("click", () => {
allProjects.forEach((project) => {
if (project !== currentProject) {
project.classList.remove("selected");
}
});
currentProject
.querySelectorAll(".project-slideshow > .slide")
.forEach((slide) => slide.classList.remove("active"));
currentProject
.querySelector(".project-slideshow > .slide")
.classList.add("active");
currentProject.classList.toggle("selected");
Router.setParam("project", currentProject.dataset.slug);
});
});
const closeAllProjects = document.querySelectorAll(".closer");
closeAllProjects.forEach((closeProject) => {
closeProject.addEventListener("click", () => {
allProjects.forEach((p) => {
p.classList.remove("selected");
});
});
});
window.addEventListener("routechange", () =>
selectProject(Router.getParam("project")),
);
selectProject(Router.getParam("project"));