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

我正在寻找应该移动执行 touchmove 的 div 的解决方案 - 对于一个或两个轴的触摸移动像素的确切数量。

到目前为止我做了什么?

我试图将匿名函数绑定(bind)到 divtouchmove 事件,期望匿名函数的 e 参数会像 mousemove 那样具有 offsetXoffsetY 之类的东西,所以我可以相应地更新 div 的位置参数。

像这样的东西:

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

没结果。

我应该怎么做?



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

最佳答案

我建议查看这篇文章,它演示了“touchmove”事件的简单设置并在 jQuery 中获取偏移位置:http://www.devinrolsen.com/basic-jquery-touchmove-event-setup/

如果文章消失了,这里是代码设置,其中的偏移量从文章的事件中计算出来。

$('#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 中找到解决方案。

关于javascript - 如何检测触摸移动长度/偏移量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33548926/

10-10 23:41