本篇文章主要简单讲解移动端(手机端)的事件,我们知道在PC端存在很多的事件类型,例如点击事件,鼠标移入、移除、键盘按下等事件。
但是移动端与PC段存在一些差异,例如移动端没有鼠标等等,那么由此带来的差异,又该怎么解决呢?移动端是否存在其所特有的事件来弥补这类问题呢?答案是:有的。
移动端事件
这里列出移动端中所特有的事件类型
触碰事件(touch)
touchstart
:手指触摸到屏幕时(手指未松开)touchent
:手指松开时touchmove
:手指在屏幕上移动时touchcancle
:手指按下屏幕时,由于某些特殊情况被打断
触摸事件(tap)
tap
: 手指碰一下屏幕会触发longTap
: 手指长按屏幕会触发singleTap
: 手指碰一下屏幕会触发doubleTap
: 手指双击屏幕会触发
滑动事件(swiper)
swipe
:手指在屏幕上滑动时会触发swipeLeft
:手指在屏幕上向左滑动时会触发swipeRight
:手指在屏幕上向右滑动时会触发swipeUp
:手指在屏幕上向上滑动时会触发swipeDown
:手指在屏幕上向下滑动时会触发
移动端与PC端
移动端兼容PC端所有的事件,而PC端不支持移动端事件
同类型事件
同类型事件,比如点击事件,在PC端的是 click ,移动端是 touch系列 ,那么,我们称之为 同类型事件。
执行顺序
- 假如给一个元素同时绑定移动端和PC端事件,那么移动端事件会优先执行,PC端事件会后执行。
- 移动端事件被触发后,浏览器会查看后面还有没有 同类型 的 移动端或PC端事件,如果有,则自动触发。
执行速度
如果是在移动端中运行,那么,移动端事件会优先执行,并且,移动端事件的响应速度比PC端事件要快。
PC端事件的触发速度,平均比移动端事件要慢 300ms 左右。
例如:在移动端,click 的响应速度就比 touchstart 要慢很多。
影响执行速度的因素
我们上面说了,在移动端中,PC端事件的响应速度比较慢,那么这个 慢,主要是受到下面三个因素的影响:
- 手机生产商
- 手机屏幕素质
- 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端事件在移动端中的响应延迟事件能够大幅缩短,但,依然没有移动端专属事件的响应速度快
总结
如果做移动端开发,那么,尽量采用移动端所特有的事件,因为它的响应速度更快,能够给用户带来 德芙般的丝滑感受,并且还有其他底层优化在内。