zoukankan      html  css  js  c++  java
  • 移动端touch点穿(穿透)解决办法

    回答一

    穿透(点穿)是在mobile各种浏览器上发生的常见的bug。可能是由click事件的延迟或者事件冒泡导致。

    移动web开发常用的Zepto库中的touch和tap事件就会有点穿的bug(Zepto的事件都绑在Document上)。

    解决方案

    1、使用fastclick,这个可以非常完美的解决点穿问题。

    2、在touchend事件回调中加入preventDefault, 并在下一层中加上pointer-events:none。

    回答二

    移动端的click都是touch之后,才会模拟触发。

    触发的顺序是

    touchstart

    touchmove

    touchend

    mousedown

    mousemove

    mouseenter

    click

    在重叠的区域里,被遮盖的元素绑定click,遮盖的元素绑定touch事件,且touch后遮盖的元素会隐藏的话,就会造成穿透,因为click是在touch之后延迟触发的,浏览器会误认为是在遮盖的元素上触发了click。

    最好的解决方案是 自己通过touchstart,touchmove,touchend,来模拟一个click(tap)事件,这样除了防止穿透外,事件响应速度也会提高。

  • 相关阅读:
    在排序数组中查找元素
    搜索旋转排序数组
    下一个排列
    括号生成(回溯法)
    PHP之表单
    PHP之超级全局变量
    PHP之数组
    PHP之字符串
    PHP之常量
    PHP之echo/print
  • 原文地址:https://www.cnblogs.com/susanws/p/5399334.html
Copyright © 2011-2022 走看看