移动端事件
移动端事件和PC端不太一样,处理方式也有区别
- touch单手指事件
- touchstart
-
PC端事件
- mouseover
- mouseenter区别:默认阻止了事件的冒泡传播
- mouseleave
- mousewheel
- mouseout
- mousedown
- mouseup
- contextmenu鼠标右键事件行为
- click点击(不是单击)与移动端不同
- dblclick双击
- resize:window.onresize当浏览器窗口大小发生改变触发这个事件
- unload:关闭
- DOMContentLoaded:DOM2独有的事件,JQ中的$(document).ready()就是采用这个事件来操作的,他的意思是当HTML结构加载完成就会触发这个事情区别于window.ready
- …
事件对象 - e
事件传播机制:
- 捕获阶段:从document来时一直查找到事件源
- 冒泡阶段:从事件源开始一直传播到document
移动端事件
区别:
- mouse系列的事件在手机端是不兼容的,也没法使用
- 键盘相关系列的(key)在手机端也不兼容,因为手机端是虚拟的键盘=》这一系列事件我们使用input事件代替
其余的常用事件和PC端一样也存在,是不过部分事件表现形式不一样在移动端虽然我们可以使用click,但是click事件存在300ms的延迟:当用户完成第一次点击操作的时候,浏览器会等待300ms来验证一下是否触发第二次,如果操作了就属于双击,否则为单击
但是在平时的项目操作中,我们是不想要这300ms延迟的,这样的话就不能使用click事件了,需要我们自己模拟出一个单击操作:
touch事件模型,移动端专用的单手指事件模型,里面提供了常用的事件
- touchstart:手指按下触摸在屏幕上
- touchmove
- touchend手指离开屏幕
- touchcancel由于意外导致当前操作被中断执行(没什么卵用)
移动端事件库:fastclick.js
专门解决移动端click事件300ms延迟的,如果你当前的项目中已经使用了click事件,我们想要解决300ms延迟的问题,一个个的把click替换太麻烦,fastClick帮我们解决这个问题- 它使用的是Touch事件模拟了一套tap点击操作
- 当我们执行fastClick.attach的时候,参数传递进来的是哪一个元素,相当于把点击操作委托给了这个元素(事件委托)
- 当这个容器中的任何一个元素发生点击的操作,都会执行我们自己制定的那一套tap机制
1234 <script src='fastClick.js'></script><script>FastClick.attach(document.body);</script>
百度云touch手势事件库:touch-0.2.14.min.js
over了
Zepto.js移动端的小型jQuery
jQuery怎么用它怎么用
区别:Zepto更适合移动端的开发