From a43ca52aa2d102c7499c7fd8478304a26ea2cd0a Mon Sep 17 00:00:00 2001 From: Volpeon Date: Sat, 18 Jun 2022 15:51:18 +0200 Subject: Improved Lua filters, improved exhibit pages --- content/lightbox.js | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) (limited to 'content/lightbox.js') diff --git a/content/lightbox.js b/content/lightbox.js index e4a2c29..e672d63 100644 --- a/content/lightbox.js +++ b/content/lightbox.js @@ -9,7 +9,7 @@ const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer"); const figureEls = Array.from(mainEl.querySelectorAll(".js-lightbox__image")); - const closeable = lightboxContainerEl.classList.contains("js-lightbox--closeable"); + const standalone = lightboxContainerEl.classList.contains("js-lightbox--standalone"); let currentIndex = 0; let visible = !lightboxContainerEl.classList.contains("u-d-none"); let mouseDown = false; @@ -20,7 +20,7 @@ } const hide = () => { - if (closeable) { + if (!standalone) { visible = false; lightboxContainerEl.classList.add("u-d-none"); } @@ -56,41 +56,27 @@ setIndex(i); }; - let anchorEl; - let imgEl; - - if (figureEl.firstElementChild.tagName === "A") { - anchorEl = figureEl.firstElementChild; - imgEl = anchorEl.firstElementChild; - } else { - imgEl = figureEl.firstElementChild; - anchorEl = document.createElement("a"); - anchorEl.href = imgEl.src; + const imgEl = figureEl.querySelector("img"); + const captionEl = figureEl.querySelector("figcaption"); - figureEl.insertBefore(anchorEl, imgEl); - figureEl.removeChild(imgEl); - anchorEl.appendChild(imgEl); - } + const src = imgEl.src; + const description = captionEl?.innerHTML ?? ""; - anchorEl.addEventListener("click", go); const thumbnailButtonEl = document.createElement("button"); const thumbnailImgEl = document.createElement("img"); thumbnailImgEl.classList.add("o-lightbox__thumbnail-img"); - thumbnailImgEl.src = anchorEl.href; + thumbnailImgEl.src = src; thumbnailButtonEl.classList.add("o-lightbox__thumbnail"); thumbnailButtonEl.appendChild(thumbnailImgEl); thumbnailButtonEl.addEventListener("click", go); - if (i === currentIndex) { - thumbnailButtonEl.classList.add("is-selected"); - } - lightboxFooterEl.appendChild(thumbnailButtonEl); - const captionEl = figureEl.querySelector("figcaption"); - const description = captionEl?.innerHTML ?? ""; + if (!standalone) { + figureEl.firstElementChild.addEventListener("click", go); + } return { thumbnailEl: thumbnailButtonEl, @@ -106,7 +92,7 @@ lightboxFooterEl.remove(); } - if (closeable) { + if (!standalone) { document.addEventListener('mousedown', (e) => { if (visible) { mouseDown = !lightboxEl.contains(e.target) || lightboxEl === e.target; -- cgit v1.2.3-54-g00ecf