Table of Contents

How to make the difference between a Swipe/Drag vs Click/Tap event ?

About

The difference between a swipe/drag and a click is the distance traveled by the mouse.

To make the difference between a swipe and a click event:

Example

let startX; // start Y coordinate of the mouse
let startY; // start Y coordinate of the mouse
let element = document.querySelector('a'); // The listener element with an area
element.addEventListener("mousedown", event => {  
   startX = event.pageX;
   startY = event.pageY;
});
element.addEventListener("mouseup", event => {  
  const diffX = Math.abs(event.pageX - startX);
  const diffY = Math.abs(event.pageY - startY);
  let eventType;
  let delta = 6;
  if (diffX < delta && diffY < delta) {
      eventType = `Click of ${diffX}px on X`;
  } else {
     eventType = `Swipe of ${diffX}px on X`;
  }
  console.log(`It was a ${eventType}`);
});
<a>Click or swipe in the area</a>
element.addEventListener("click", event => { event.preventDefault(); } );