[javascript] 이미지 슬라이더에 이미지 드래그 애니메이션 추가하기

이미지 슬라이더는 웹사이트에서 시각적인 요소로 사용되며, 사용자 경험을 향상시키는 데 도움이 됩니다. 이미지 슬라이더에 이미지를 드래그하여 애니메이션을 추가하면 사용자들이 이미지를 더 쉽게 탐색할 수 있습니다. 이번 블로그에서는 JavaScript를 사용하여 이미지 슬라이더에 이미지를 드래그하여 애니메이션을 추가하는 방법을 살펴보겠습니다.

요구 사항

이미지 슬라이더에 이미지 드래그 애니메이션을 추가하기 위해 다음과 같은 요구 사항을 준비해야 합니다.

단계별 가이드

1. HTML 마크업

우선, HTML 파일에 이미지 슬라이더를 위한 마크업을 작성합니다. 간단한 div 요소를 이용하여 이미지 슬라이더를 만들 수 있습니다.

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

2. CSS 스타일링

이미지 슬라이더에 스타일링을 적용하여 드래그 애니메이션을 구현할 수 있습니다. 아래는 간단한 CSS 예제입니다.

.slider {
  overflow: hidden;
}

.slides {
  display: flex;
  transition: transform 0.5s ease;
}

3. JavaScript 이벤트 핸들링

드래그 애니메이션을 추가하기 위해 JavaScript 이벤트 핸들링을 구현해야 합니다. 아래 코드는 mousedown, mousemove, mouseup, mouseleave 이벤트를 사용하여 이미지를 드래그하는 동작을 구현한 예제입니다.

const slider = document.querySelector('.slider');
let isDown = false;
let startX;
let scrollLeft;

slider.addEventListener('mousedown', (e) => {
  isDown = true;
  startX = e.pageX - slider.offsetLeft;
  scrollLeft = slider.scrollLeft;
});

slider.addEventListener('mouseleave', () => {
  isDown = false;
});

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

slider.addEventListener('mousemove', (e) => {
  if (!isDown) return;
  e.preventDefault();
  const x = e.pageX - slider.offsetLeft;
  const walk = (x - startX) * 3;
  slider.scrollLeft = scrollLeft - walk;
});

위의 JavaScript 코드는 mousedown, mousemove, mouseup, mouseleave 이벤트를 활용하여 이미지를 드래그할 때 애니메이션을 적용합니다.

마치며

간단한 JavaScript 이벤트 핸들링과 CSS를 사용하여 이미지 슬라이더에 이미지 드래그 애니메이션을 추가하는 방법을 살펴보았습니다. 사용자들은 이제 슬라이더를 더욱 편리하게 사용할 수 있을 것입니다. 여러분의 웹사이트에 이미지 슬라이더를 적용하여 사용자 경험을 향상시키는 데 도움이 되길 바랍니다.

참고 자료