У меня проблемы с тем, чтобы сделать мои изображения кликабельными с помощью ванили javascript. Есть ли способ лучше? Кстати, я должен добавить, что после нескольких неудачных попыток создания галереи изображений Lightbox, это то, что я сделал. См. Код ниже.
CSS:
.container {
max-width: 1280px;
padding: 10px 1rem;
margin: auto;
overflow: hidden;
.main-img img,
.imgs img {
width: 100%;
}
.imgs {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 5px;
}
.imgs img {
cursor: pointer;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
.fade-in {
opacity: 0;
animation: fadeIn var(0.5s) ease-in 1 forwards;
}
const current = document.querySelector('#current');
const imgs = document.querySelectorAll('.imgs img');
const opacity = 0.5;
imgs[0].style.opacity = opacity;
imgs.forEach(img => img.addEventListener('click', imgClick));
function imgClick(e) {
imgs.forEach(img => (img.style.opacity = 1));
current.src = e.target.src;
current.classList.add('fade-in');
setTimeout(() => current.classList.remove('fade-in'), 500);
e.target.style.opacity = opacity;
}
И код HTML:
<div class="main-img py">
<img src="img/items/BurgerIm App.png" id="current" />
</div>
<div class="imgs">
<img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" /> <img src="img/items/BurgerIm App.png" />
</div>