javascript - 绕过 iOS 的鼠标悬停事件

标签 javascript iphone ios mouseover

我们的网站利用 overLIB 库在鼠标悬停时显示有关可点击链接的“更多信息”。结果是在 iOS 设备上,第一次点击会导致出现鼠标悬停文本,而第二次点击会激活链接。

为非 iOS 浏览器保留鼠标悬停文本,同时为使用 iOS 的用户绕过它,以便对于 iOS,链接在第一次点击时激活的最简单方法是什么?

最佳答案

如果你想要一个简单的解决方案,你可以使用像 Modernizr 这样的东西,如下所述:What's the best way to detect a 'touch screen' device using JavaScript? .然后,您可以将 overLIB 事件绑定(bind)到非触摸类等。这样,您可以解决所有触摸设备用户而不仅仅是 iOS 用户。当然,如果您只需要 iOS 用户,您可以随时使用 UA 嗅探 ( http://www.quirksmode.org/js/detect.html ),但不推荐这样做。

但是,您仍然会遇到为不需要它的用户加载 overLIB 脚本的问题。我认为避免这种情况的最佳方法取决于您的堆栈的其余部分。

另一件需要考虑的事情是悬停提示的目的。如果它们在您的桌面网站上很有用,可以帮助用户了解他们要去哪里而无需进行点击,那么为什么它们在您的触摸设备网站上就没有用了?我知道悬停在触摸设备上很笨重,但我认为它们很常见,因为还没有其他选择。我敢打赌,触摸设备用户了解流程。想到的唯一例子是 Seamless.com - 当您从餐厅选择菜单项时,您会得到一个“悬停”描述,然后需要第二次单击才能选择该项目。


我意识到这是一个老问题 - 为 Google 员工回答。 :)

关于javascript - 绕过 iOS 的鼠标悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070628/

相关文章:

javascript - 从外部 JS 调用函数,该函数需要在另一个页面上进行更改

iphone - 核心图 - 直方图

android - 我在哪里可以学习如何实现 'Where is my water' 的物理原理?

ios - CoreBluetooth 配对反馈/回调

ios - UIPickerView - 多行行 - 需要布局建议

javascript - 从数组动态创建对象

javascript - 在没有轨迹球控件或其他相机控制库的情况下在 threeJS 中缩放相机

javascript - Jest : test Intl. DateTimeFormat

objective-c - iPhone 6 上的 native 分辨率,适用于模拟器,但不适用于设备

ios - UITableViewDiffableDataSource - 项目移动到另一个部分时的动画转换