[javascript] Hammer.js를 사용하여 이미지 갤러리의 슬라이드 효과를 제어하는 방법은?

먼저, HTML에 이미지 갤러리를 구현합니다. 이미지 갤러리를 감싸는 컨테이너 요소와 이미지들을 포함하는 요소들로 구성됩니다. 예를 들어, 다음과 같은 HTML 마크업을 사용할 수 있습니다:

<div id="image-gallery">
  <img src="image1.jpg" alt="Image 1">
  <img src="image2.jpg" alt="Image 2">
  <img src="image3.jpg" alt="Image 3">
</div>

다음으로, Hammer.js를 로드하고 이미지 갤러리에 Hammer 인스턴스를 추가해야 합니다. 아래 코드는 jQuery와 Hammer.js를 사용하여 이미지 갤러리에 슬라이드 효과를 제어하는 예제입니다:

// Hammer.js 로드
<script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js"></script>

$(document).ready(function() {
  // 이미지 갤러리 요소 선택
  var imageGallery = document.getElementById('image-gallery');
  
  // Hammer 인스턴스 생성
  var hammer = new Hammer(imageGallery);

  // swipeleft와 swiperight 제스처 이벤트 처리
  hammer.on('swipeleft swiperight', function(event) {
    // 왼쪽으로 스와이프 시 다음 이미지 표시
    if (event.type === 'swipeleft') {
      showNextImage();
    }
    // 오른쪽으로 스와이프 시 이전 이미지 표시
    else if (event.type === 'swiperight') {
      showPreviousImage();
    }
  });

  // 다음 이미지 표시 함수
  function showNextImage() {
    // 이미지 갤러리에서 현재 이미지 요소 선택
    var currentImage = imageGallery.querySelector('img:not(.hidden)');
    
    // 다음 이미지 요소 선택
    var nextImage = currentImage.nextElementSibling;
    
    // 다음 이미지가 없으면 첫 번째 이미지 선택
    if (!nextImage) {
      nextImage = imageGallery.querySelector('img:first-child');
    }
    
    // 현재 이미지 숨김 처리
    currentImage.classList.add('hidden');
    
    // 다음 이미지 표시
    nextImage.classList.remove('hidden');
  }

  // 이전 이미지 표시 함수
  function showPreviousImage() {
    // 이미지 갤러리에서 현재 이미지 요소 선택
    var currentImage = imageGallery.querySelector('img:not(.hidden)');
    
    // 이전 이미지 요소 선택
    var previousImage = currentImage.previousElementSibling;
    
    // 이전 이미지가 없으면 마지막 이미지 선택
    if (!previousImage) {
      previousImage = imageGallery.querySelector('img:last-child');
    }
    
    // 현재 이미지 숨김 처리
    currentImage.classList.add('hidden');
    
    // 이전 이미지 표시
    previousImage.classList.remove('hidden');
  }
});

위 코드에서 image-gallery 요소에 swipeleft와 swiperight 이벤트를 등록하고, 해당 이벤트가 발생하면 다음 이미지와 이전 이미지를 순환하도록 처리합니다. 이미지는 hidden 클래스를 사용하여 감추거나 표시합니다.

이제 Hammer.js를 사용하여 이미지 갤러리의 슬라이드 효과를 제어할 수 있습니다. 필요에 따라 코드를 수정하여 원하는 동작을 구현할 수 있습니다.