Javascript 如何检测触摸移动长度/偏移?

Javascript 如何检测触摸移动长度/偏移?,javascript,jquery,jquery-mobile,mobile,touch,Javascript,Jquery,Jquery Mobile,Mobile,Touch,在开发人员工具中,我可以看到执行手指移动时多次触发touchmove事件* 我正在寻找一种解决方案,它应该移动执行touchmove的div——一个或两个轴的触摸移动像素的确切数量 到目前为止我做了什么? 我尝试将匿名函数绑定到div的touchmove事件,希望匿名函数的e参数将具有类似于offsetX和offsetY的内容,这样我就可以相应地更新div的位置参数 大概是这样的: $('div').on('touchmove', function(e){ console.log(e);

在开发人员工具中,我可以看到执行手指移动时多次触发
touchmove
事件*

我正在寻找一种解决方案,它应该移动执行touchmove的
div
——一个或两个轴的触摸移动像素的确切数量

到目前为止我做了什么? 我尝试将匿名函数绑定到
div
touchmove
事件,希望匿名函数的
e
参数将具有类似于
offsetX
offsetY
的内容,这样我就可以相应地更新
div
的位置参数

大概是这样的:

$('div').on('touchmove', function(e){
  console.log(e);
  //e has no offset or similar param known to me
});
没有结果

我该怎么做呢

特别呼吁:我将投票支持任何可行的解决方案,但被接受的答案是,至少可以让我从一个起点了解在纯JavaScript中应该做什么,而不需要像jQuery mobile这样的抽象

*
我实际上是在Chrome开发工具中进行光标触摸模拟的

我建议看一看这篇文章,它演示了“touchmove”事件的简单设置,并在jQuery中获得偏移位置:

如果文章消失,下面是代码设置,其中的偏移量是根据文章中的事件计算的

$('#someElm').bind('touchmove',function(e){
  e.preventDefault();
  var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
  var elm = $(this).offset();
  var x = touch.pageX - elm.left;
  var y = touch.pageY - elm.top;
});

希望这有助于在纯javascript中找到解决方案。

这里是一个非jQuery解决方案

function addTouchOffsets (event) {
    var touch = event.touches[0] || event.changedTouches[0];
    var realTarget = document.elementFromPoint(touch.clientX, touch.clientY);
    event.offsetX = touch.clientX-realTarget.getBoundingClientRect().x;
    event.offsetY = touch.clientY-realTarget.getBoundingClientRect().y
    return event;
}

看来这就是我要找的。谢谢。登录只是为了更新投票。这里有一个似乎“更正确”的替代解决方案,但您的解决方案确实有效。