[javascript] 자바스크립트로 페이드 인/아웃 애니메이션을 적용할 수 있는 슬라이더 요소

웹 개발에서 시각적인 요소를 부드럽게 보여주는 효과는 사용자 경험을 향상시키는 데 도움이 됩니다. 페이드 인/아웃 애니메이션을 적용하여 사진 또는 내용을 전환하는 슬라이더 요소는 이를 구현하는 좋은 방법 중 하나입니다.

HTML 구조

우선, HTML 구조를 작성합니다. 단순히 이미지 또는 내용을 담을 div 요소와 이동할 이전, 다음 버튼을 추가합니다.

<div class="slider">
  <div class="slide"><img src="image1.jpg" alt="Image 1"></div>
  <div class="slide"><img src="image2.jpg" alt="Image 2"></div>
  <div class="slide"><img src="image3.jpg" alt="Image 3"></div>
  <button id="prevBtn">이전</button>
  <button id="nextBtn">다음</button>
</div>

CSS 스타일링

이미지나 내용을 가리키는 div 요소와 버튼에 대한 기본 CSS 스타일을 추가합니다.

.slider {
  position: relative;
  overflow: hidden;
}
.slide {
  display: none;
  position: absolute;
  width: 100%;
  height: auto;
}
button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  cursor: pointer;
}
#prevBtn {
  left: 10px;
}
#nextBtn {
  right: 10px;
}

자바스크립트로 애니메이션 추가

이제 자바스크립트를 사용하여 슬라이더 요소에 애니메이션을 추가합니다. 간단한 애니메이션 라이브러리를 사용할 수 있지만, 순수 자바스크립트로도 구현할 수 있습니다.

let currentSlide = 0;
const slides = document.querySelectorAll('.slide');
const prevBtn = document.getElementById('prevBtn');
const nextBtn = document.getElementById('nextBtn');

function showSlide(index) {
  for (let i = 0; i < slides.length; i++) {
    if (i === index) {
      slides[i].style.display = 'block';
    } else {
      slides[i].style.display = 'none';
    }
  }
}

function prevSlide() {
  currentSlide = (currentSlide - 1 + slides.length) % slides.length;
  showSlide(currentSlide);
}

function nextSlide() {
  currentSlide = (currentSlide + 1) % slides.length;
  showSlide(currentSlide);
}

prevBtn.addEventListener('click', prevSlide);
nextBtn.addEventListener('click', nextSlide);

위 코드는 현재 슬라이드 인덱스를 추적하고, 이전다음 버튼 클릭 시에 이를 조정하여 해당 슬라이드를 보여줍니다.

애니메이션 효과를 부드럽게 적용하려면 CSS 트랜지션 또는 CSS 애니메이션을 사용하여 이미지 페이드 인/아웃 효과를 추가할 수 있습니다.

마무리

이제 당신은 자바스크립트를 사용하여 페이드 인/아웃 애니메이션을 적용한 간단한 슬라이더 요소를 만들었습니다. 이를 통해 사용자에게 시각적으로 매력적인 콘텐츠를 제공할 수 있게 되었습니다.

참고 자료