From b4444941222ce6d12613c9e97ad64b7a345ff3c8 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Thu, 16 Jun 2022 10:05:59 +0200 Subject: Update --- content/main.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'content/main.js') diff --git a/content/main.js b/content/main.js index 760d40a..c843947 100644 --- a/content/main.js +++ b/content/main.js @@ -32,7 +32,7 @@ const lightboxNextEl = lightboxEl.querySelector(".o-lightbox__next-btn"); const lightboxImgEl = lightboxEl.querySelector(".o-lightbox__img"); const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer"); - const figureEls = Array.from(mainEl.querySelectorAll("figure")).map(el => el.querySelector("a")); + const figureEls = Array.from(mainEl.querySelectorAll("figure")); const show = () => { visible = true; @@ -47,7 +47,7 @@ const setIndex = (i) => { thumbnailEls[currentIndex].classList.remove("is-selected"); currentIndex = i; - lightboxImgEl.src = figureEls[i].href; + lightboxImgEl.src = figureEls[i].firstElementChild.href; thumbnailEls[i].classList.add("is-selected"); }; @@ -70,13 +70,29 @@ setIndex(i); }; - figureEl.addEventListener("click", go); + 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; + + figureEl.insertBefore(anchorEl, imgEl); + figureEl.removeChild(imgEl); + anchorEl.appendChild(imgEl); + } + + anchorEl.addEventListener("click", go); const thumbnailButtonEl = document.createElement("button"); const thumbnailImgEl = document.createElement("img"); thumbnailImgEl.classList.add("o-lightbox__thumbnail-img"); - thumbnailImgEl.src = figureEl.href; + thumbnailImgEl.src = anchorEl.href; thumbnailButtonEl.classList.add("o-lightbox__thumbnail"); thumbnailButtonEl.appendChild(thumbnailImgEl); -- cgit v1.2.3-54-g00ecf