2012-03-20 64 views
0

我想區分點擊使用觸摸事件在JavaScript中的滑動。我想知道,觸摸事件對象中是否有屬性可以檢查以確定「touchend」事件的差異,還是您必須同時偵聽touchstart或touchend和touchmove事件?我想盡量減少我必須添加到DOM的事件監聽器的數量,並且想知道是否可以通過觀察單個事件來完成此操作?具體來說,我正在研究iOS上的webkit。Javascript觸摸對象

回答

2

根本不綁定點擊事件。它的響應速度比收集觸摸事件慢得多。

要檢查滑動,您需要聽取touchstart和touchend事件。除非你計劃在事件發生時做某件事,否則不要擔心touchmove。

在touchstart事件中,您需要記錄事件的x/y位置。在觀看活動中,再次進行同樣的操作。您還需要某種閾值,以便在計算x1-x2和y1-y2之間的差異時,可以確定它是否是輕掃。

Apple給出了一個元算法,其中涉及touchmove http://developer.apple.com/library/ios/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html。在該頁面上搜索「確定滑動」並找到它。

我個人從未需要使用touchmove,併成功地使用了上述技術。然而,要麼是一種有效的方法,所以你應該調查什麼最適合你。

+0

感謝您的回答。我已經按照你的建議使用touchstart和touchend對它進行了編碼,並且已經將更高層的監聽器應用到了DOM中,這樣我就不會爲每個單獨的組件添加事件,這些組件只能是頁面級別的每個事件之一。 – Purpletoucan 2012-03-21 12:21:09