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