Javascript Hammer.js pan事件仅适用于触摸设备,不适用于台式计算机单击+;拖曳

Javascript Hammer.js pan事件仅适用于触摸设备,不适用于台式计算机单击+;拖曳,javascript,ios,mobile,hammer.js,Javascript,Ios,Mobile,Hammer.js,我将此标准代码用于带Hammer.js的Pan/Pinch(1): var mc = new Hammer(document.body); mc.add(new Hammer.Pinch({ threshold: 0 })).recognizeWith(mc.get('pan')); // let the pan gesture support all directions. this will block the vertical scrolling on a touch-device w

我将此标准代码用于带Hammer.js的Pan/Pinch(1):

var mc = new Hammer(document.body);

mc.add(new Hammer.Pinch({ threshold: 0 })).recognizeWith(mc.get('pan'));

// let the pan gesture support all directions. this will block the vertical scrolling on a touch-device while on the element
mc.get('pan').set({ direction: Hammer.DIRECTION_ALL });
mc.on("panleft panright panup pandown tap press pinchstart pinchmove", function(ev) {
    $('#myElement').text(ev.type +" gesture detected. ev.scale=" + ev.scale + "  ev.deltaX,Y=" + ev.deltaX +'  ' + ev.deltaY);
});
如何仅为触摸设备而非桌面计算机获取hammer.js pan事件
单击+拖动
(因为我已经有了桌面计算机单击+拖动的工作代码,我不想重写此代码!)


注(1):顺便问一下,这个代码好吗?为什么真正需要
recognizeWith

通过设置inputClass选项,可以强制Hammer.js使用所需的输入类:

如果可用,您可能还希望支持指针事件:

var hammer = Hammer(element, {
  inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput
})
Hammer.js内置了以下InputClass:

  • 点通风输入
  • 触摸输入
  • 鼠标输入
  • 触摸鼠标输入

您可以检查事件(ev)对象中的“pointerType”属性值。 它应该是桌面的“鼠标”

var hammer = Hammer(element, {
  inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput
})