gpt4 book ai didi

javascript - 在第一个 touchstart 事件中禁用所有点击事件是个好主意吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:53 26 4
gpt4 key购买 nike

由于touchstart、tap和300ms延迟点击之间的冲突,做一个好的快速响应的网站相对困难。

当然 vclick 应该可以解决这些问题,但他们似乎也无法完全解决这些问题。来自文档:

Warning: Use vclick with caution

Use vclick with caution on touch devices. Webkit based browsers synthesize mousedown, mouseup, and click events roughly 300ms after the touchend event is dispatched. The target of the synthesized mouse events are calculated at the time they are dispatched and are based on the location of the touch events and, in some cases, the implementation specific heuristics which leads to different target calculations on different devices and even different OS versions for the same device. This means the target element within the original touch events could be different from the target element within the synthesized mouse events.

We recommend using click instead of vclick anytime the action being triggered has the possibility of changing the content underneath the point that was touched on screen. This includes page transitions and other behaviors such as collapse/expand that could result in the screen shifting or content being completely replaced.

现在我正在考虑做一些更简单的事情。每当触发 touchstart 事件时,我都知道这是一个触摸设备。我只是禁用所有点击事件,并开始监听 touchstart(或点击)事件。忽略 300 毫秒的延迟点击事件。

当然有带有鼠标触摸的设备,但同时使用这些设备的人对我来说似乎是少数。

这是个好主意,还是我的想法遗漏了什么?

最佳答案

首先……是什么让您说同时使用触摸和鼠标输入的人是少数?

使用 <meta name="viewport" content="width=device-width"> 时,300 毫秒的点击延迟在 Android 上已经消失了一段时间。 .不幸的是can't be removed on iOS因为它是不可缩放页面上的滚动手势,几乎没有人注意到这一点。

我认为最好的方法仍然是同时支持鼠标和触摸输入,尽管在 iOS 设备上有 300 毫秒的延迟。假设用户只使用一次触摸输入是很危险的。

想象一下用户愉快地使用鼠标进行导航。他们看到一些有趣的东西,他们想看得更近一点,所以他们使用触摸手势来放大,突然间鼠标点击就不再起作用了。这对我来说听起来很糟糕。

我只记得一个interesting discussion关于检测鼠标用户。也许它会帮助您以不同的方式看待事物。

关于javascript - 在第一个 touchstart 事件中禁用所有点击事件是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27398044/

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