封装移动端的tap事件

var in={
 // dom: 传入的dom元素让我们可以给任意的元素添加 tap事件
 tap:function(dom,callback){
  // 判断是否传入对象同时对应应该是一个dom元素
  if(!dom || typeof dom!='object'){
   return;
  }
  var startTime,startX,startY;
  dom.addEventListener('touchstart',function(event){
   // 说明不止一根手指操作
   if(event.targetTouches.length>1){
    return;
   }
   // 记录手指开始触摸的时间
   startTime=Date.now();
   console.log(startTime);
   
   // 记录当前手指的坐标
   startX=event.targetTouches[0].clientX;
   startY=event.targetTouches[0].clientY;
     })
  // touchEnd; 当手指松开时候触发,意味着当前元素上已经没有手指对象了,
   dom.addEventListener('touchend',function(event){
   if(event.changedTouches.length>1){
    return;
   }
   // 判断时间差异150ms
   // console.log(Date.now()-startTime);
   if(Date.now()-startTime>150){
    return;
   }
   var endX=event.changedTouches[0].clientX;
   var endY=event.changedTouches[0].clientY;
   // 这里暂且将距离差异定位6,判断手指移动的距离在6范围之内
   if(Math.abs(endX-startX)<6 && Math.abs(endY-startY)<6){
    console.log('这就是移动端的单击事件--tap事件');
    // 执行tap事件响应后的处理操作
    callback && callback(event);
   }
  })
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值