Javascript触摸对象

问题描述:

我想区分点击使用触摸事件在JavaScript中的滑动。我想知道,触摸事件对象中是否有属性可以检查以确定“touchend”事件的差异,还是您必须同时侦听touchstart或touchend和touchmove事件?我想尽量减少我必须添加到DOM的事件监听器的数量,并且想知道是否可以通过观察单个事件来完成此操作?具体来说,我正在研究iOS上的webkit。Javascript触摸对象

根本不绑定点击事件。它的响应速度比收集触摸事件慢得多。

要检查滑动,您需要听取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