原生js如何判断移动端的tap,dbltap,longtap?点击,双击,长按的识别

在移动端,可以根据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,是我的经验值,在开发中觉得这二个值的界定还是挺合适的。一次双击同时等于二次单击。当然手机上面双击的交互是很少的,长按还是挺有实用性的,比如长按删除。

你可能感兴趣的:(原生js如何判断移动端的tap,dbltap,longtap?点击,双击,长按的识别)