在移动端执行Click事件,通常情况出现有300毫秒的延迟,为防止这种不必要的延迟效果,我们可以换种方式来实现,同样达到快速执行Click事件的效果。
先了解一下移动端Click的执行顺序: touchstart - > touchmove -> touchend -> mouseover ->mousemove ->click, 从这个执行顺序可以看出,走完这个过程,300毫秒到click响应不足为奇了。
既然如此,我们完全可以通过touchstart来取代click事件,另外,也可以在click事件里,对event的type来判断来快速执行响应。
IOS阻止默认click事件原理,需要主要的是:
(1)只是针对IOS,其它平台不必阻止;
(2)在touchend时就看手指移动情况来觉得该阻止click或者是取消touch事件;
(3)只有event类型为click时才有必要阻止。
在touchend的时候与touchstart时比较时间,位置,以区别是否执行“按下”的操作。值得一提的是,Zepto的tap事件,已经很好的为我们解决了这个问题。
时间: 2024-10-11 02:01:15