hic-et-nunc/assets/js/home-slideshow.js
isUnknown 4490e11794 home > slideshow : skip desktop-only slides on mobile (< 1000px)
Closes #8

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 18:40:31 +02:00

38 lines
1.1 KiB
JavaScript

const slideshow = document.getElementById("home-slideshow");
if (slideshow) {
const items = [...slideshow.querySelectorAll(".slide")];
const prev = slideshow.querySelector(".prev");
const next = slideshow.querySelector(".next");
let current = 0;
function isDesktopOnly(index) {
return (
window.innerWidth < 1000 &&
items[index].classList.contains("desktop-only")
);
}
function findNext(from, direction) {
let index = (from + direction + items.length) % items.length;
let steps = 0;
while (isDesktopOnly(index) && steps < items.length) {
index = (index + direction + items.length) % items.length;
steps++;
}
return index;
}
function goTo(index) {
items[current].classList.remove("active");
current = index;
items[current].classList.add("active");
}
const firstVisible = findNext(-1, 1);
items[firstVisible]?.classList.add("active");
current = firstVisible;
prev?.addEventListener("click", () => goTo(findNext(current, -1)));
next?.addEventListener("click", () => goTo(findNext(current, 1)));
}