论移动站点点击事件的实现

由于移动站使用click的话会出现延迟一般都是用touchstart和touchend2个方法来实现模拟touch站的点击事件。 1.touchstart:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始即能触发
2.click:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始,且手指未曾在屏幕上移动(某些浏览器允许移动一个非常小的位移值),且在这个在这个dom上手指离开屏幕,且触摸和离开屏幕之间的间隔时间较短(某些浏览器不检测间隔时间,也会触发click)才能触发
于是我们可以看到,完全用touchstart代替是不太可取的。 下面在看下这张图 这里介绍了点击移动用移动站的方法,我们用touchstart和touchedn中间的时间间隔和移动的位置判断是否是点击,也就是说如果touchstart与touchend之间的间隔小于大概200ms那么久可以认为是点击,这样的话是比click快的。于是我们就写这样的方法来模拟click事件:
var d1,d2;     document.getElementById("imgcode").addEventListener('touchstart',function(){         d1=new Date().getTime();     })     document.getElementById("imgcode").addEventListener('touchend',function(){         d2=new Date().getTime();     if(d2-d1<=200){         document.getElementById("imgcode").src="/membership/GetValidateCode.html? v="+Math.random()*1000;       }     })

我这边是用touchstart与touchend替换click时间点击更换验证码的方法。

 

   
分享到: