Skip to content

在运行时切换识别器

手势识别器可以根据其enable属性启用或禁用,该属性必须通过set方法调用或构造函数参数来设置。

javascript
// 禁用tap手势
hammer.get('tap').set({ enable: false })

// 然后在需要的时候再次启用它
hammer.get('tap').set({ enable: true })

与其在应用程序中每次都切换enable属性,您可以将这个责任委托给一个自定义函数,该函数将与每个新的触摸事件一起检查,以决定事件是否可以被派发到识别器。这个特性提供了基于应用/UI逻辑构建复杂手势场景的支持。

javascript
var view = View.extend({
  state: 'ACTIVE',
  score: 0,
  canRecognizeTap: function (recognizer, event) {
    return this.state !== 'INACTIVE' && this.score > 0
  },
})

var mc = new Hammer.Manager(viewElement, {})
var canEnable = function (rec, input) {
  return view.canRecognizeTap(rec, input)
}
mc.add(new Hammer.Tap({ enable: canEnable }))

Manager.enable选项也可以以这种方式工作。

🎉有任何问题,欢迎联系我

WeChat QR Code
WeChat
QQ QR Code
QQ

赣ICP备2023003243号