什么是iOS设备处理的默认方式:hover伪类?

我有一个可以点击的div(通过jQuery $('.mydiv').click ) – 这扩展了div,第二次点击崩溃。

相同的div有一些CSS :hover规则适用于它(即显示hover的更多信息) – 这在个人电脑上的预期。

当使用iOS设备时,点击工作,也适用:hover伪类 – 所以我的额外信息显示。 这几乎是我想要发生的(令人惊讶的)。

然而,只要在CSS中使用:hover伪类,并不意味着点击就会显示出来。

那么iOS应用(或不) :hover状态的规则是什么? 有一些文档可以查看吗?

我真的不想在隐藏function下隐藏function,必须编写一些触摸特定的JavaScript来使它们工作,因为看起来iOS似乎已经在为我做一些工作 – 我只想知道如何使用该function而不仅仅是发生在它身上!

正如你可能知道的,iOS实际上并不支持:hover伪类,因为它使用了一个基于触摸的界面。 由于兼容性原因,它在特定情况下触发鼠标事件,但是这种行为并不是模仿或触发元素的:hover状态的最可靠的方法,因为您不能像使用手指一样实际hover元素一个鼠标指针。 从这个技术笔记 :

另外,iPhone OS用户使用Safari的手指直接与网页内容交互,而不是使用鼠标。 这为支持触摸的界面创造了新的机会,但是在hover状态下却不能很好地工作。 例如,鼠标指针可以hover在网页元素上并触发事件; Multi-Touch屏幕上的手指不能。 出于这个原因,在iPhone OS上的Safari中模拟鼠标事件。 因此,仅依赖于mousemovemouseovermouseout或CSS伪类:hover元素在触摸屏设备(例如iPad或iPhone)上的行为并不总是如预期的那样。

也就是说,由于鼠标事件确实对应于CSS中基于鼠标的UI状态,因此它们在文档中有一定程度的覆盖,但不是太多。 我在这里find了一些东西:

iOS不支持以下networking技术:

  • 鼠标hover事件

    用户不能在iOS上“滑过”不可点击的元素。 如“单指事件”中所述,该元素必须是可点击的,以便发生mouseover事件。

  • hover样式

    由于mouseover事件仅在mousedown事件之前发送,因此只有当用户使用hover样式触摸并保存可点击的元素时,才会显示hover样式。 阅读iOS的手势产生的所有事件的“处理事件” 。

这意味着:hover只支持可点击的元素。 可点击的事件在这里被定义为:

可点击的元素是一个链接,表单元素,图像映射区域,或任何其他与mousemovemousedownmouseup ,或onclick处理程序的元素。

有了这个说法,如果你想在iOS上提供一致和可靠的用户体验,最好的办法是devise触摸,因为这就是它的目的。

Interesting Posts