【來源】:在開發行動端網站時,會經常徘徊在click和touchstart之間;因為touchstart雖然好用和快速響應;但是其缺點也是顯而易見的,當我們大面積的使用touchstart的時候就會遇到,滾動頁面的時候會頻繁的觸發,導致其不友好的體驗;所以,不能單獨的說哪個好與不好,而應該利用其長處,規避其缺點;
而且,對於a標籤,在行動端的跳轉方式,等同於click(經過自己實際體驗)
【問題】在我們在上層觸發touchstart的時候,下層的click或者a標籤都會同時被觸發(嚴格的講是350ms之後觸發)
【原理】是由於click的觸發時間是500ms,而touchstart觸發時間是350ms,由於500>350導致的用戶出現了穿透問題
# 【解決方法】解決問題的方法有多重多樣,換個角度換個方式,就有不同的答案;以下介紹幾個我在實際中行之有效的方法,僅供參考:
可以把touchstart換成touchend,因為觸發touchend需要200ms所以可以把觸發時間這個原理問題解決掉(這個也是我經常使用的,處理點擊問題)
大家也可以在觸發下面一層覆蓋上一層透明層,讓其穿透到這個透明層,而不是有事件的那層(這種方法增加了層級,也增加的編碼的複雜度)
以上是解決行動端touchstart事件穿透問題方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!