我将这个标准代码用于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);
});
如何仅针对触摸设备而不是台式计算机Click+Drag
获取hammer.js平移事件?(因为我已经使用了桌面代码电脑点击+拖动,我不想重写它!)
注意(1):顺便说一下,这段代码好吗?为什么真正需要recognizeWith
?:
答案 0 :(得分:8)
您可以通过设置 inputClass 选项强制Hammer.js使用您想要的输入类:
var hammer = Hammer(element, {
inputClass: Hammer.TouchInput
})
您可能还希望在可用时支持指针事件:
var hammer = Hammer(element, {
inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput
})
Hammer.js内置了以下inputClasses:
答案 1 :(得分:4)
您可以查看' pointerType'事件(ev)对象中的属性值。 它应该是"鼠标"用于桌面。