【问题标题】:Hammer.js fires extraneous pinchin/pinchout eventsHammer.js 触发无关的捏合/捏合事件
【发布时间】:2015-09-28 14:16:30
【问题描述】:

在 CodePen 示例的 JS 面板中使用此代码:

var myElement = document.getElementById('myElement');
var mc = new Hammer.Manager(myElement);

var pinch = new Hammer.Pinch({threshold: 0});
mc.add([pinch])
mc.on("pinch pinchin pinchout pinchstart pinchend", function(ev) {
    myElement.textContent += ev.type +" ";
});

并在带有触摸屏的 PC 上的 Chrome 上测试 pinch 事件,您会注意到 pinchend 后面总是有一个额外的“pinchin”事件。捏出时也会发生同样的情况。

顺序将进行:

pinchstart pinch pinchin pinch pinchin... ...pinch pinchin pinch pinchend pinchin

这是一个错误还是设计使然?这与“鬼点击”有关吗?

【问题讨论】:

  • 作为一种解决方法,我在 Pinch 侦听器中添加了跟踪最后一个 Pinch 事件的代码。如果之前的 Pinch 事件是“pinchend”,那么我会忽略当前的 pinchin 或 pinchout。

标签: javascript hammer.js pinch bug-reporting


【解决方案1】:

您应该单独使用“pinch”事件或其他事件(pinchin、pinchout 等),而不是同时使用两者。

只要去掉“捏”:

mc.on("pinchin pinchout pinchstart pinchend", function(ev) {
    myElement.textContent += ev.type +" ";
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多