移动端touch点穿(穿透)解决办法
2016-04-16 20:50
323 查看
回答一
穿透(点穿)是在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)事件,这样除了防止穿透外,事件响应速度也会提高。
相关文章推荐
- 根据Critera获得LocationProvider
- 适配ListView和RecyclerView构建多Item模板的终极杀器——MTSimpleAdapter
- Android中的一些开关
- Android Studio报Element XXXX must be declared的解决方法
- Unity3D学习日记(一)使用UGUI制作虚拟摇杆
- 移动端的touch事件处理
- Android使用本地缓存解析远程服务器JSON数据
- 视频直播,手机直播,视频秀的app简介
- 关于安卓应用方法过多的问题
- 视频直播的购物平台,网站,app
- iOS - 全屏滑动
- iOS 项目一直在后台执行
- Android 用MediaCodec实现视频硬解码
- Android singleTask和 taskAffinity
- Android:使用Handler在线程之间通信
- android studio生成签名文件,以及SHA1和MD5值
- 学习笔记(一)Android 的简介
- Android AudioTrack
- 启动Activity的最佳写法--《第一行代码Android》
- Android—常用组件练习