Skip to content

Latest commit

 

History

History
51 lines (30 loc) · 2.09 KB

question.CN.md

File metadata and controls

51 lines (30 loc) · 2.09 KB

常见问题

手势识别器的 name 字段必填

自定义手势一定记得给起一个名字哦, 而且不要和默认存在的手势同名(已有 tap/swipe/pan/rotate/pinch/press).

at.use(tap, { pointLength: 2, name: 'twoFingersTap' });
at.on('twoFingersTap', onTwoFingersTap);

🚀 返回目录

不要用 alert 调试

在安卓手机的真机上, 如果touchstarttouchmove阶段触发了alert, 会出现后续的touchmove/touchend不触发的 bug. 所以请大家务必避免在手势的事件回调中使用alert. 测试代码

如果仅仅是了在移动端调试, 请使用腾讯的vconsole

🚀 返回目录

macos 上的 chrome 浏览器触发 touchend 会比较慢

由于上述原因, swipe 事件发生的会"慢半拍",所以请大家最终测试以手机效果为准.

🚀 返回目录

移动端尽量使用 tap 代理 click

在移动端 touchstart 比 click 先触发, 所以 touchstart 阶段的 preventDefault 会阻止 click 触发, 恰恰 any-touch 默认在 touchstart 中使用了preventDefault, 用来阻止了浏览器默认事件的触发,比如 click 和页面滚动.

如果移动端非要使用 click 做如下设置

const at = new AnyTouch(el, { preventDefault: false });

🚀 返回目录

使用了 AnyTouch 后页面不能滑动了?

因为 AnyTouch 默认开启了"preventDefault:true", 你可以设置他为"false", 但是如果交互情况比较复杂未能满足, 你可以参考阻止默认事件

🚀 返回目录