자바스크립트를 사용하여 CSS Grid를 활용한 이미지 갤러리에 슬라이드 쇼 기능 추가하기
이미지 갤러리에 슬라이드 쇼 기능을 추가하는 것은 사용자에게 좀 더 흥미로운 경험을 제공하는 데 도움이 됩니다. 자바스크립트를 사용하여 CSS Grid를 활용한 이미지 갤러리에 슬라이드 쇼 기능을 추가하는 방법에 대해 알아보겠습니다.
HTML 구조
먼저 HTML 구조를 설정해야 합니다. CSS Grid를 사용하여 이미지를 효과적으로 배치하고 슬라이드 쇼를 제공하기 위해 다음과 같은 구조를 사용할 수 있습니다.
<div class="gallery">
<div class="slides">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
<!-- 추가 이미지 -->
</div>
<button class="prev">이전</button>
<button class="next">다음</button>
</div>
CSS 스타일링
CSS를 사용하여 갤러리와 이미지 슬라이드를 스타일링할 수 있습니다. 다음은 기본적인 CSS 스타일을 적용한 예시입니다.
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
max-width: 900px;
margin: 0 auto;
}
.slides {
display: grid;
grid-template-columns: repeat(3, 1fr);
overflow: hidden;
position: relative;
}
.slides img {
width: 100%;
height: auto;
object-fit: cover;
object-position: center;
}
.button {
width: 60px;
height: 40px;
background-color: #000;
color: #fff;
border: none;
border-radius: 5px;
}
.prev {
grid-column: 1;
grid-row: 2;
}
.next {
grid-column: 3;
grid-row: 2;
}
자바스크립트 코드
이제 자바스크립트를 사용하여 슬라이드 쇼 기능을 추가할 차례입니다. 다음은 자바스크립트 코드 예제입니다.
document.addEventListener("DOMContentLoaded", function() {
const slides = document.querySelector(".slides");
const prevBtn = document.querySelector(".prev");
const nextBtn = document.querySelector(".next");
const imageWidth = slides.offsetWidth;
let currentImageIndex = 0;
prevBtn.addEventListener("click", function() {
if (currentImageIndex > 0) {
currentImageIndex--;
slides.style.transform = `translateX(-${currentImageIndex * imageWidth}px)`;
}
});
nextBtn.addEventListener("click", function() {
if (currentImageIndex < slides.children.length - 1) {
currentImageIndex++;
slides.style.transform = `translateX(-${currentImageIndex * imageWidth}px)`;
}
});
});
위의 코드는 이전 버튼과 다음 버튼 클릭 시 현재 이미지의 인덱스를 증가/감소시키고, 슬라이드를 왼쪽/오른쪽으로 이동시키는 기능을 구현합니다.
마무리
이제 이미지 갤러리에 슬라이드 쇼 기능이 추가된 예쁜 갤러리를 만들어보았습니다. 사용자가 자동으로 전환되는 이미지 슬라이드 쇼를 즐길 수 있게 되었습니다.
#JavaScript #CSSGrid #이미지갤러리 #슬라이드쇼