[javascript] Hammer.js를 사용하여 터치 이벤트를 웹 페이지 내 특정 위치에만 적용하는 방법은?

Hammer.js를 사용하여 웹 페이지의 특정 위치에 터치 이벤트 적용하기

Hammer.js는 터치 및 제스처 이벤트를 쉽게 처리할 수 있는 JavaScript 라이브러리입니다. 이 라이브러리를 사용하여 웹 페이지의 특정 위치에만 터치 이벤트를 적용하려면 다음 단계를 따르세요.

1. Hammer.js 라이브러리 추가하기

먼저, Hammer.js를 웹 페이지에 추가해야 합니다. <script> 태그를 사용하여 Hammer.js 파일을 가져오는 방법은 다음과 같습니다:

<script src="hammer.min.js"></script>

위의 코드에서 “hammer.min.js”는 Hammer.js 라이브러리 파일의 경로입니다. 적절한 경로를 지정해야 정상적으로 라이브러리가 로드됩니다.

2. 특정 요소에 Hammer.js 적용하기

다음으로, 특정 요소에 Hammer.js를 적용해야 합니다. 아래는 targetElement라는 ID를 가진 요소에 Hammer.js를 적용하는 예제 코드입니다:

<div id="targetElement"></div>

<script>
  // Hammer.js 인스턴스 생성
  var hammer = new Hammer(document.getElementById('targetElement'));
  
  // 터치 이벤트 리스너 추가
  hammer.on('tap', function(event) {
    console.log('터치 이벤트 발생!');
    // 원하는 동작을 처리하는 코드를 여기에 작성하세요.
  });
</script>

위의 코드에서 tap은 터치 이벤트 종류 중 하나입니다. 다른 터치 이벤트를 사용하려면 tap을 원하는 이벤트로 바꿔주면 됩니다. 또한, targetElement는 실제로 터치 이벤트를 적용하려는 요소의 ID로 변경해야 합니다.

3. 특정 영역에만 터치 이벤트 적용하기

마지막으로, 특정 영역에만 터치 이벤트를 적용하는 방법입니다. 기본적으로 Hammer.js는 전체 페이지에 이벤트를 적용하지만, inputClass라는 옵션을 사용하여 특정 클래스를 가진 요소에만 이벤트를 적용할 수 있습니다.

<div class="touchable">
  <p>터치 가능한 요소입니다.</p>
</div>

<script>
  var hammer = new Hammer(document.body, {
    inputClass: Hammer.TouchMouseInput
  });
  
  var touchableElements = document.getElementsByClassName('touchable');
  Array.from(touchableElements).forEach(function(element) {
    hammer.add(new Hammer(element));
  });
  
  hammer.on('tap', function(event) {
    console.log('터치 이벤트 발생!');
    // 원하는 동작을 처리하는 코드를 여기에 작성하세요.
  });
</script>

위의 코드에서 touchable 클래스를 가진 요소에만 터치 이벤트가 적용됩니다. inputClass 옵션은 내장된 Hammer.TouchMouseInput을 사용하여 터치 및 마우스 이벤트를 모두 처리할 수 있도록 합니다.


참고 자료