tap事件是怎么模拟出来的?移动端触摸事件是怎么一个流程?

发布于 2022-09-02 15:53:29 字数 336 浏览 15 评论 0

手机端事件触发过程
touchstart>touchend>tap +300ms>click
这个是移动端一次点击的流程吗?
为什么zepto中有个延时250呢?

//zepto中的代码
 touchTimeout = setTimeout(function(){
                  touchTimeout = null
                  if (touch.el) touch.el.trigger('singleTap')
                  touch = {}
                }, 250)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掌心的温暖 2022-09-09 15:53:29

这个延迟是singleTap事件的延迟,用来区分single和double tap

如果是单击的话:
touchstart>touchend>tap>250ms>singleTap

如果是双击的话:
touchstart>touchend>tap>touchstart>touchend>doubleTap

回到你的问题tap事件是怎么模拟的,源码上还是挺清楚的,具体过程如下:

  1. 首先tap是在touchend之后时触发的

  2. 触发条件一,位移不能大:touchstart和touchend两个位置之间不能有超过横向或者纵向30px的位移

  3. 触发条件二,时间不能长:touchstart到touchend之间超过750ms

蓝咒 2022-09-09 15:53:29

楼上正解。这个是延迟用来区分单击或双击的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文