原生js如何判断移动端的tap,dbltap,longtap?点

2017-12-02  本文已影响0人  章鱼小丸子_7be1

在移动端,可以根据touchStart与touchEnd的间隔来判断是点击,双击,还是长按;

主要的代码:

let t=0, lastTap=0;

oBtn.addEventListener('touchstart',function(){

t=Date.now();

},false);

oBtn.addEventListener('touchend',function(){

if(Date.now()-t<=700){

console.log('tap');

if(Date.now()-t<=700){

    console.log('tap');

if(Date.now()-lastTap<=300){

    console.log('dbltap');

}

lastTap=Date.now();

}else{

console.log('long tap');

}

lastTap=Date.now();

}

},false);

通过时间差来判断,当然为什么是700, 300,是我的经验值,在开发中觉得这二个值的界定还是挺合适的。一次双击同时等于二次单击。当然手机上面双击的交互是很少的,长按还是挺有实用性的,比如长按删除。

上一篇 下一篇

猜你喜欢

热点阅读