场景:手指在屏幕“点击”(放下后迅速提起)。
手势结束后会发生什么呢?
点击(click)事件是肯定会有的,但是在发生点击(click)之前还会有哪些事情要处理呢?
从右图可以看出,在手指提起时并没有马上触发点击(click)事件,而是对页面进行一次事件检测,检测页面上是否有绑定了事件(click/mousedown/mouseup)的元素(element)。
首先触发的是mouseover和mousemove事件,事件触发时系统会判断事件元素(click element),当事件元素(click element)的内容被改变时,将不再继续后面的事件处理;反之,事件元素(click element)没有被改变,则按照mousedown > mouseup > click 的顺序执行。
这时一次简单的手势事件基本上已经完成了,为什么说基本上完成呢?或许有同学就会问了,mouseout事件呢?
对,这里完成一次简单“点击”后并不会触发mouseout事件,那mouseout事件什么时候才触发呢?
当你再点击另一个事件元素(click element)时就会触发上一个事件元素(click element)的mouseout
事件了。
如果手指放下后不提起这时候会发生什么呢?
什么都不发生,如果当前按下的是一个连接,就会弹出一个菜单,比如“在新窗口打开”……
如果是文字会显示操作工具条,可以复制、搜索选择中的文字。等等……