gpt4 book ai didi

javascript - 我怎样才能做一些触摸而不是触摸和拖动的事情

转载 作者:行者123 更新时间:2023-11-30 13:14:35 25 4
gpt4 key购买 nike

我正在构建一个响应式网站,主导航在 hover 上显示子导航。在触摸屏上,它在 click 时执行此操作(更具体地说是 touchstart)。

在桌面上,当用户不再将鼠标悬停在导航或子导航上时,它就会消失。为了在触摸屏上实现同样的功能,我将一个函数绑定(bind)到 bodytouchstart 事件。此函数检查触摸是否发生在 nav 中的元素上。如果没有,它会关闭打开的子导航。

问题是我只希望当用户在 nav 之外点击时发生这种情况,不是 如果他们滚动。我如何检查用户是否滚动而不是仅仅点击?

目前的功能是这样的:

$('body').bind('touchstart', function(e) {
if($(e.target).closest('nav').length == 0) {
closeAll();
}
});

最佳答案

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

编辑:我在为触摸屏界面编码时遇到的另一件事是 certain devices have a built-in delay of ~300ms when using click() .如果您还没有覆盖它,您可以覆盖它。

关于javascript - 我怎样才能做一些触摸而不是触摸和拖动的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12528158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com