自定义手势一定记得给起一个名字哦, 而且不要和默认存在的手势同名(已有 tap/swipe/pan/rotate/pinch/press).
at.use(tap, { pointLength: 2, name: 'twoFingersTap' });
at.on('twoFingersTap', onTwoFingersTap);
在安卓手机的真机上, 如果touchstart
或touchmove
阶段触发了alert
, 会出现后续的touchmove/touchend
不触发的 bug. 所以请大家务必避免在手势的事件回调中使用alert
.
测试代码
如果仅仅是了在移动端调试, 请使用腾讯的vconsole
由于上述原因, swipe 事件发生的会"慢半拍",所以请大家最终测试以手机效果为准.
在移动端 touchstart 比 click 先触发, 所以 touchstart 阶段的 preventDefault 会阻止 click 触发, 恰恰 any-touch 默认在 touchstart 中使用了preventDefault
, 用来阻止了浏览器默认事件的触发,比如 click 和页面滚动.
如果移动端非要使用 click 做如下设置
const at = new AnyTouch(el, { preventDefault: false });
因为 AnyTouch 默认开启了"preventDefault:true", 你可以设置他为"false", 但是如果交互情况比较复杂未能满足, 你可以参考阻止默认事件