[javascript] 자바스크립트로 이미지 슬라이더에 캐러셀 효과 구현하기
캐러셀 효과를 가진 이미지 슬라이더를 자바스크립트로 구현하는 방법에 대해 알아보겠습니다.
HTML 구조
우선 캐러셀에 사용할 이미지들과 이전/다음 버튼을 담은 요소를 HTML로 작성합니다.
<div class="carousel">
<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 스타일링
다음으로, 슬라이더와 버튼을 스타일링합니다.
.carousel {
position: relative;
overflow: hidden;
}
.slides {
display: flex;
}
img {
width: 100%;
flex: 0 0 auto;
}
button {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(0, 0, 0, 0.5);
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
}
.prev {
left: 0;
}
.next {
right: 0;
}
자바스크립트 구현
이제 자바스크립트를 사용하여 캐러셀 효과를 구현합니다.
const slides = document.querySelector('.slides');
const prevButton = document.querySelector('.prev');
const nextButton = document.querySelector('.next');
const slideWidth = slides.clientWidth;
let currentSlide = 0;
nextButton.addEventListener('click', () => {
currentSlide = (currentSlide + 1) % slides.children.length;
slides.style.transform = `translateX(${-slideWidth * currentSlide}px)`;
});
prevButton.addEventListener('click', () => {
currentSlide = (currentSlide - 1 + slides.children.length) % slides.children.length;
slides.style.transform = `translateX(${-slideWidth * currentSlide}px)`;
});
이제 페이지를 새로고침하여 이미지 슬라이더에 캐러셀 효과가 적용된 것을 확인할 수 있습니다.
위의 코드를 활용하여 쉽게 자바스크립트를 사용하여 이미지 슬라이더에 캐러셀 효과를 구현할 수 있습니다.