Javascript iOS设备处理:hover伪类的默认方式是什么?
我有一个可以单击的div(通过jQueryJavascript iOS设备处理:hover伪类的默认方式是什么?,javascript,ios,css,css-selectors,pseudo-class,Javascript,Ios,Css,Css Selectors,Pseudo Class,我有一个可以单击的div(通过jQuery$('.mydiv')。单击)-这将展开div,第二次单击将其折叠 同一个div应用了一些CSS:hover规则(即显示有关hover的更多信息)-这在PC上可以正常工作 当使用iOS设备时,单击会起作用,并且还会应用:hover伪类-因此会显示我的额外信息。这正是我想要发生的(令人惊讶) 然而,在CSS中使用带有:hover伪类的东西并不意味着点击就会显示它 那么iOS在应用(或不应用)悬停状态时遵循的规则是什么?有一些文档可以查看吗 我真的不想把功能
$('.mydiv')。单击
)-这将展开div,第二次单击将其折叠
同一个div应用了一些CSS:hover
规则(即显示有关hover的更多信息)-这在PC上可以正常工作
当使用iOS设备时,单击会起作用,并且还会应用:hover
伪类-因此会显示我的额外信息。这正是我想要发生的(令人惊讶)
然而,在CSS中使用带有:hover
伪类的东西并不意味着点击就会显示它
那么iOS在应用(或不应用)悬停状态时遵循的规则是什么?有一些文档可以查看吗
我真的不想把功能隐藏在悬停下,必须编写一些特定于触摸屏的JavaScript来让它们工作,因为iOS似乎已经在为我做一些工作了——我只是想知道如何专门使用这些功能,而不是仅仅在它之间发生 您可能知道,iOS实际上并不支持
:hover
伪类,因为它使用基于触摸的界面。出于兼容性原因,它确实会在特定情况下触发鼠标事件,但这种行为并不是模拟或触发元素的:hover
状态的最可靠方式,因为不能像使用鼠标指针那样用手指悬停元素。发件人:
此外,iPhone操作系统上的Safari用户直接用手指与您的web内容交互,而不是使用鼠标。这为支持触摸的界面创造了新的机会,但不能很好地处理悬停状态。例如,鼠标指针可以悬停在网页元素上并触发事件;多点触摸屏上的手指不能移动。因此,在iPhone操作系统上的Safari中模拟鼠标事件。因此,仅依赖于mousemove
、mouseover
、mouseout
或CSS伪类:hover
的元素在iPad或iPhone等触摸屏设备上的行为可能并不总是如预期的那样
这就是说,由于鼠标事件确实对应于CSS中基于鼠标的UI状态,所以文档中在一定程度上对它们进行了介绍,但介绍不多。我确实发现了一些东西:
iOS不支持以下web技术:
- 鼠标悬停事件
用户无法在iOS上“鼠标悬停”不可单击的元素。元素必须可单击,才能发生
事件,如中所述鼠标悬停
- 悬停样式
由于
事件仅在mouseover
事件之前发送,因此仅当用户触摸并按住具有悬停样式的可单击元素时,才会显示悬停样式。阅读iOS上手势生成的所有事件mousedown
:hover
。可点击事件定义为:
可单击元素是一个链接、表单元素、图像映射区域或具有mousemove
、mousedown
、mouseup
或onclick
处理程序的任何其他元素
话虽如此,如果你想在iOS上提供一致可靠的用户体验,你最好的选择就是为触摸设计,因为这就是它的目的。一个彻底的答案!谢谢你,先生。我的意图是一种渐进式的提高。i、 e.如果可以使用悬停,那么就使用它,但不要依赖悬停状态-网站应该可以在没有悬停的情况下使用。i、 例如,在我的例子中,单击一个div展开,自动显示悬停状态,这纯粹是向用户显示更多的信息。当内容被扩展时,它是完全相关的信息。如果知道元素是可点击的(在本例中是),就会出现:hover,这很好。非常感谢。