解决移动端touch事件(touchstart/touchend) 的穿透问题

解决:

解决方案一:e.preventDefault()

没错就是这个大家熟悉到烂的方法,我也是写来写去死马活马的用,在ios上效果很不错,完美解决穿透点击问题,andirod上效果不好(所以有了下面的方法)。

 

 

解决方案二:利用pointer-events 这个方法

 

<div class="up-overlay"></div>
<div class="under-overlay"></div>
<div class="button"></div>

 

$('.button').on('touchstart',function(){

  $('.up-overlay').hide();
  $('.under-overlay').hide();

  //马上让它不能点击
  $('.under-overlay').css('pointer-events','none');

  //因为click事件需要300ms响应,所以我们时间定义350ms,时间一过又可以正常点击了
  setTimeout(function(){$('.under-overlay').css('pointer-events','all')},350)
})

posted @ 2018-04-28 11:15  趴着睡  阅读(402)  评论(0)    收藏  举报