tap事件是怎么模拟出来的?移动端触摸事件是怎么一个流程?
手机端事件触发过程
touchstart>touchend>tap +300ms>click
这个是移动端一次点击的流程吗?
为什么zepto中有个延时250呢?
//zepto中的代码
touchTimeout = setTimeout(function(){
touchTimeout = null
if (touch.el) touch.el.trigger('singleTap')
touch = {}
}, 250)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个延迟是
singleTap
事件的延迟,用来区分single和double tap如果是单击的话:
touchstart>touchend>tap>250ms>singleTap
如果是双击的话:
touchstart>touchend>tap>touchstart>touchend>doubleTap
回到你的问题tap事件是怎么模拟的,源码上还是挺清楚的,具体过程如下:
首先tap是在touchend之后时触发的
触发条件一,位移不能大:touchstart和touchend两个位置之间不能有超过横向或者纵向30px的位移
触发条件二,时间不能长:touchstart到touchend之间超过750ms
楼上正解。这个是延迟用来区分单击或双击的。