0%

移动端事件

本篇文章主要简单讲解移动端(手机端)的事件,我们知道在PC端存在很多的事件类型,例如点击事件,鼠标移入、移除、键盘按下等事件。
但是移动端与PC段存在一些差异,例如移动端没有鼠标等等,那么由此带来的差异,又该怎么解决呢?移动端是否存在其所特有的事件来弥补这类问题呢?答案是:有的。

移动端事件

这里列出移动端中所特有的事件类型

触碰事件(touch)

  • touchstart:手指触摸到屏幕时(手指未松开)
  • touchent:手指松开时
  • touchmove:手指在屏幕上移动时
  • touchcancle:手指按下屏幕时,由于某些特殊情况被打断

触摸事件(tap)

  • tap: 手指碰一下屏幕会触发
  • longTap: 手指长按屏幕会触发
  • singleTap: 手指碰一下屏幕会触发
  • doubleTap: 手指双击屏幕会触发

滑动事件(swiper)

  • swipe:手指在屏幕上滑动时会触发
  • swipeLeft:手指在屏幕上向左滑动时会触发
  • swipeRight:手指在屏幕上向右滑动时会触发
  • swipeUp:手指在屏幕上向上滑动时会触发
  • swipeDown:手指在屏幕上向下滑动时会触发

移动端与PC端

移动端兼容PC端所有的事件,而PC端不支持移动端事件


同类型事件

同类型事件,比如点击事件,在PC端的是 click ,移动端是 touch系列 ,那么,我们称之为 同类型事件


执行顺序

  1. 假如给一个元素同时绑定移动端和PC端事件,那么移动端事件会优先执行,PC端事件会后执行。
  2. 移动端事件被触发后,浏览器会查看后面还有没有 同类型移动端或PC端事件,如果有,则自动触发。

执行速度

如果是在移动端中运行,那么,移动端事件会优先执行,并且,移动端事件的响应速度比PC端事件要快。

PC端事件的触发速度,平均比移动端事件要慢 300ms 左右。

例如:在移动端,click 的响应速度就比 touchstart 要慢很多。


影响执行速度的因素

我们上面说了,在移动端中,PC端事件的响应速度比较慢,那么这个 ,主要是受到下面三个因素的影响:

  1. 手机生产商
  2. 手机屏幕素质
  3. meta标签的理想视口配置

上面说的第三点其实就是这个:

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">

当我们在网页上加入上面这句 meta 标签,那么,PC端事件在移动端中的响应延迟事件能够大幅缩短,但,依然没有移动端专属事件的响应速度快


总结

如果做移动端开发,那么,尽量采用移动端所特有的事件,因为它的响应速度更快,能够给用户带来 德芙般的丝滑感受,并且还有其他底层优化在内。

-------------本文结束    感谢阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!