【移动端H5】click事件和touch事件的区分

当我们在开发移动端的浏览器H5页面时,页面既会支持click事件,又会支持touch事件

作为初学者来说,在开发触控事件的处理时,非常容易把这两个事件弄混或者不知道绑定在哪个事件上,从而导致触控混乱,出现很多bug!!!

这篇文章将对两者的不同点做一个简要的区分~

一、事件定义

🌟touch事件

touch事件是移动端区别于pc端触控的独有事件,也是实现很多手势的基础事件。

它具体包含了:touchstart(触摸开始时触发)、touchmove(触摸并产生移动时触发)、touchend(触摸结束时触发)等一系列事件。

🌟click事件

click事件pc端和移动端中的元素都有,但是在移动端的click事件,可以理解为仅在“点击”场景下触发,即触摸并释放后触发。所以,在移动端点击元素,不仅会触发click事件,还会触发touchstart和touchend。

而移动端根据touchstart到touchend的间隔时间,又会区分触发 click(单击)、dbclick(双击)事件

通常来说,click事件里,touchstart和touchend事件大概间隔200-300ms

二、触发时机

根据上面的定义,可以知道移动端click事件的触发其实也是基于touch事件来的。

touchstart首先被触发,然后根据间隔时间是否符合标准,再看是否触发click事件

因此,先触发touch事件、再触发click事件

三、适用场景

🌟touch事件

适用于需要快速响应交互的滑动、需要根据功能定制的手势触控

尤其注意移动端很多默认的手势比如页面滑动、应用的滑进滑出、缩放,都是基于touch事件来的,因此需要根据需要决定是否在事件回调函数里使用e.preventDefault()。如果使用了,则可能会导致默认手势事件失效比如页面不可滑动了【非常坑,因为移动端的滑动基本使用touch触发的scroll,就好比touch触发的click事件一样】

🌟click事件

适用于按钮点击、表单提交等直接需要点击功能、且无复杂交互响应的情况。非常便捷、直接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音仔小瓜皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值