[javascript] 자바스크립트로 이미지 슬라이더에 플리킹 효과 구현하기

이미지 슬라이더는 웹사이트에서 많이 사용되는 요소 중 하나입니다. 사용자에게 다양한 컨텐츠를 보여주는 유용한 방법 중 하나이지만, 사용자 경험을 향상시키기 위해 플리킹 효과를 추가할 수 있습니다. 이번에는 자바스크립트를 사용하여 이미지 슬라이더에 플리킹 효과를 구현하는 방법을 알아보겠습니다.

슬라이더 마크업 생성하기

먼저 HTML에서 슬라이더의 마크업을 생성해야 합니다. 각 이미지는 <div> 요소 안에 위치하고, 이들을 감싸는 컨테이너 <div>도 생성해야 합니다.

<div class="slider-container">
  <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>
  </div>
</div>

CSS 스타일링하기

이미지 슬라이더를 스타일링하기 위해 CSS를 사용합니다. 슬라이드의 가시성을 조절하고 슬라이더 내부에 있는 이미지 요소들의 가시성도 설정합니다.

.slider-container {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 300px;
}
.slider {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  flex: 0 0 100%;
}

자바스크립트로 플리킹 효과 구현하기

이제 자바스크립트를 사용하여 플리킹 효과를 구현합니다. 마우스로 슬라이더를 드래그하는 경우, 슬라이더를 이동시키는 기능을 추가할 것입니다.

const slider = document.querySelector('.slider');
let isDragging = false;
let startPos, currentTranslate;

slider.addEventListener('mousedown', (event) => {
  isDragging = true;
  startPos = event.clientX - slider.offsetLeft;
  currentTranslate = 0;
});

slider.addEventListener('mousemove', (event) => {
  if (!isDragging) return;
  const x = event.clientX - slider.offsetLeft;
  const walk = x - startPos;
  currentTranslate = walk;
  slider.style.transform = `translateX(${currentTranslate}px)`;
});

slider.addEventListener('mouseup', () => {
  isDragging = false;
});

이제 여러분은 자바스크립트를 사용하여 이미지 슬라이더에 플리킹 효과를 구현했습니다! 이제 사용자가 슬라이더를 클릭하고 드래그할 때마다 이미지가 플리킹되는 것을 확인할 수 있을 것입니다.

참고 자료