在Android浏览器中模拟鼠标悬停行为

Simulating hover behaviour in Android browser for touch events

本文关键字:悬停 鼠标 模拟 Android 浏览器      更新时间:2023-09-26

我的Wordpress网站正在使用Superfish 1.5.4来渲染菜单项。

我的菜单由许多父菜单项组成,这些父菜单项也是可点击的页面,当将鼠标悬停在这些父菜单项上时,子菜单项应该出现

当鼠标悬停在我的PC浏览器的父菜单项上时,子菜单项出现,这是预期的行为。

在iPhone浏览器中,当触摸父菜单项时,子菜单项会出现,这也是首选行为。(所以这有效地触发了悬停行为)

问题是,在Android设备上,触摸父菜单项会导致点击事件,而不是我们在iPhone上看到的悬停行为。

我看过Superfish的JavaScript,我没有看到任何iPhone特有的逻辑。

因此,我想知道为什么在iPhone上触摸会导致悬停行为,而在Android设备上却不会。

我在这里错过了什么?

问题本质上是:hover功能并不真正存在于触摸设备上(考虑到没有像鼠标那样悬停的物理方法)。在iPhone上获得预期效果的唯一原因是,使用iOS的设备在点击事件之前触发:hover事件,因此您将在页面更改之前短暂地看到预期的样式。没有任何好的解决方案,特别是对于像你这样的子菜单菜单,但我检查了一些资源,如this,以更好地了解问题和可能的方法,它被"解决"。