我怎么能在触摸时做一些事情而不是触摸和拖动

时间:2012-09-21 09:48:48

标签: javascript jquery touch

我正在构建自适应网站,主导航会在hover上显示子导航。在触摸屏上,它会在click(更具体地touchstart)上执行此操作。

在桌面上,当用户不再悬停在导航或子导航上时,它会消失。为了在触摸屏上实现相同的功能,我将一个函数绑定到touchstart的{​​{1}}事件。此函数检查触摸是否发生在body内的元素上。如果它没有关闭一个打开的子导航。

麻烦的是,如果用户点击nav,如果他们滚动,我只希望这种情况发生。如何检查用户是否滚动而不是仅仅点击?

到目前为止的功能是:

nav

1 个答案:

答案 0 :(得分:3)

我会在touchstart上检测到他们触摸的位置(坐标),并设置时间检查几毫秒......如果触摸点移动了几个像素,他们就会滚动。

编辑: 编码触摸屏界面时遇到的其他问题是certain devices have a built-in delay of ~300ms when using click()。如果你还没有,可以覆盖它。