Content

The touchend are not fired properly on Android if event.preventDefault() is not used on touchstart and touchmove.

This is a demo, test with mobile

In other words, if you want to the touchend fired properly, you’d better add event.preventDefault() in touchstart or touchend handlers. However, it will prevent page scrolling. If you want the page effect is same as One Page Scroll , you can add event.preventDefault() in touchstart or touchend handlers.

Usually, I would like to add scroll event listener on window.

var tId = null;

document.addEventListener('scroll', function (event) {
  clearTimeout(tId);
  tId = setTimeout(function () {
    // do something...
  }, 100);
}, false);

Reference