Это метод противодействия тому факту, что вы можете начать отслеживать, приостанавливать, а затем очень быстро двигать пальцем или мышью (допустим, внезапное нажатие на сенсорный экран).
var time = 200
var tracker = setInterval(function(){
historicTouchX = touchX;
}, time);
document.addEventListener("touchmove", function(){
speed = (historicTouchX - touchX) / time;
console.log(Math.abs(speed));
}, false);
Я сделал это только с touchX в этом примере. Идея состоит в том, чтобы делать снимок положения x каждые 200 миллисекунд, а затем делать это из текущей позиции, а затем делить на 200 (скорость = расстояние / время). Это будет держать свежую информацию о скорости. Время составляет миллисекунды, и на выходе будет число пикселей, пройденных за 200 миллисекунд.