在 'touchmove' 事件中查看在垂直方向上拖动了多少像素

on 'touchmove' event see how many pixels were dragged in vertical direction

我将 touchmove 事件绑定到一个 div 上,其中有一个滑块图形,需要以某种方式计算用户上下拖动了多少像素,所以我可以调整滑块图形(真的不想为此使用任何库,因为它是唯一发生此功能的地方)。

所以我看起来像这样

$('div').bind('touchmove', function(e) {
  e.preventDefault();

  // See direction where users drag.
  var pix = //how many pixels draged up or down
});
$('div').on('touchstart', function(e) {
    var touchStart = e.touches[0].clientY;
    var touchDistance = 0;

    function touchMove(e) {
        touchDistance = e.touches[0].clientY - touchStart;
    }
    $(this).on('touchmove', touchMove).one('touchend', function() {
        $(this).off('touchmove', touchMove);
    });
});

这只适用于一次触摸!

它的工作原理是获取初始触摸位置,然后在您移动手指时使用它来获取偏移量。

你必须小心处理你的事件监听器,否则你最终会遇到大量的事件监听器和内存泄漏——所以不要忘记在触摸结束时解除绑定 touchmove 事件。

如果您需要任何帮助来理解这一点,请告诉我!