zoukankan      html  css  js  c++  java
  • 移动端点透现象及解决办法

    移动端 touch 事件

      移动端在 touch 上一共有4个事件,touchstart、touchmove、touchend、touchcancel, touchcancel, 一般来说,它们执行的顺序为 touchstart -> touchmove -> touchend -> touchcancel .

      当用户在点击屏幕的时候,系统会触发 touch 事件和 click 事件,touch 事件优先处理,touch 事件经过捕获,目标,冒泡一系列流程处理完成后,才回去触发 click 事件。也就是说 click 的触发是有延迟的,这个时间大概在 300ms 左右。

    点透现象

      点透发生的条件:

    1. A 和 B不是后代继承关系(如果是后代继承关系的话,就直接是冒泡子类的话题了)
    2. A发生 touch, A touch 后立即消失, B事件绑定 click
    3. A z-index大于B,即 A 显示在 B 浮层之上

      点透发的原因:当手指点击屏幕,系统生成两个事件 touch 和 click 。touch 先执行,touch 执行完成后 A 消失,然后要执行 click 的时候,就会发现用户点击的是 B,所以就执行了B的 click。

      点透现象解决办法:

    1. 阻止默认事件,在 touch 时间的某个阶段执行 event.preventDefault() ,去取消系统生成的 click 事件,一半在 touchend 中执行
    2. 要消失的元素延时300ms,然后在消失
     
  • 相关阅读:
    [ZJOI2010]基站选址
    [SDOI2008]Sue的小球
    访问计划
    奥义商店
    codeforces 809E Surprise me!
    codeforces 888G Xor-MST
    [HAOI2015]数字串拆分
    小奇分糖果
    小奇的花园
    BZOJ4711 小奇挖矿
  • 原文地址:https://www.cnblogs.com/sspeng/p/9759451.html
Copyright © 2011-2022 走看看