美文网首页洪睿内刊
浅谈移动端点透问题

浅谈移动端点透问题

作者: Hoody_66d5 | 来源:发表于2020-02-10 00:46 被阅读0次

在进行移动端开发的时候,我们或多或少会听说过点透现象,那么这个到底是一个什么样的问题呢,以及应该如何去解决,本文将做一个简单的介绍:

先讲问题:

例如说我们移动端有一个页面,进行了某些操作后,页面会出现一个弹窗,弹窗的确认按钮使用了touchend事件作为事件绑定。当点击了弹窗的确认按钮后,弹窗消失,然后莫名其妙地就触发了位于按钮下发的一些click事件。

其实这里是有不少的限制条件的,但是就总是会被我们碰到,没碰到过的话可以自己尝试复现一下。

原因分析:

1. 移动端上click事件有300ms延迟(主要是浏览器的用户行为机制引起的,详细可以找找参考资料)

2. 事件触发顺序为touchstart->touchmove->touchend->click

因此在touchend将弹窗关闭后,其实click事件还没有真正执行,等click事件执行的时候,弹窗已经关闭,click就会直接在最后点击的那个地方产生,自然就会触发到下面的click事件了,例如说信息页面的某些功能块。这样的一个过程就会产生我们所说的点透事件。

解决办法:

既然知道了原因所在,那我们解决问题就来的方便多了。

1. 手动取消默认事件,避免浏览器在执行了touch事件之后再去执行click,我们一般可以通过event.preventDefault()方法解决

2. 项目中尽量不要将click与touch事件混用,可以使用hammer等手势库进行手势事件的统一

3. 使用fastClick取消click事件的默认延迟,也有其他方案如设置浏览器meta属性来禁止浏览器的用户行为

相关文章

  • 浅谈移动端点透问题

    在进行移动端开发的时候,我们或多或少会听说过点透现象,那么这个到底是一个什么样的问题呢,以及应该如何去解决,本文将...

  • 前端常见面试题(九)@郝晨光

    请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案 提到移动端点透问题,就不得不先提到移动端的click...

  • 移动端点透

    可以通过阻止PC默认事件的方式去改变 同时:阻止PC默认事件后,IOS10下用户也不能缩放了

  • 请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案

    提到移动端点透问题,就不得不先提到移动端的click事件300ms延迟问题 一、移动端click事件300ms延迟...

  • 前端常见面试题十二 (移动端)

    目录: 1、请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案 2、移动端为什么会有一像素问题?如何解决...

  • web前端常见面试题(十二)

    目录: 1,请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案(越多越好) 2,移动端为什么会有一像素问...

  • 移动端点透原因-解决方法

    大家都知道移动端click事件有300ms的延时,那么原因又是什么: 在移动端触发时间会按照 touchstart...

  • 第十二天vue面试题

    1,请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案,(越多越好) 点透场景 层A 覆盖在层B上面,常...

  • fastclick和普通click的点击响应测速

    一直想研究fastclick在移动端有多快,于是今天通过彻底解决TAP(点透)提升移动端点击响应速度学习了fast...

  • H5编写指南

    常见问题汇总: 移动端点击事件按钮变色 具体表现:安卓端点击变蓝色,ios端点击留黑色框 解决方案:在所有的a标签...

网友评论

    本文标题:浅谈移动端点透问题

    本文链接:https://www.haomeiwen.com/subject/qfybxhtx.html