在移動端頁面上,一次點擊行為,會觸發touch、mouse、click事件,規則如下:
Stage 1: 手指按在屏幕上,立即觸發touchstart。
Stage 2: 手指離開屏幕,這里分2種情況:
如果手指在屏幕上的停留時間少於500ms,會依次觸發 touchend->mousemove->mousedown->mouseup->click。事件間的時間間隔非常短。
如果手指在屏幕上的停留時間大於500ms,只會觸發touchend。
如果手指在屏幕上產生了移動,則不論停留時間多長,都只會觸發 touchmove->touchend。
如果是在微信瀏覽器,一旦手指停留超過500ms,會立即觸發一次mousemove,然后在手指離開的時候觸發touchend。
另外,超過500ms的長按會觸發瀏覽器的選中復制的彈框,css的 touch-callout:none; 可以禁止彈框,不過兼容性不佳。