【发布时间】:2014-06-23 21:17:38
【问题描述】:
我正在做一个简单的:hover滑入式封面,如图所示,它应该滑入“收藏文章”控件,然后用户可以单击该控件以收藏该项目。
虽然它在桌面上使用鼠标悬停并单击效果很好,但我不确定它是否可以用作移动设备或其他设备上的有效控件(即单击以切换,然后再次单击以收藏项目)。
如果我理解正确,至少在 iOS (Safari) 和 Android (Chrome) 上,默认浏览器行为是将触摸模拟为 hover 和 click。但它是标准吗?例如。
- Windows Phone 或 Wii U 也会这样做吗?
-
click会在hover之后大约 300 毫秒被触发,所以会出现鬼点击问题吗?
我当然可以在这个元素上绑定一个点击/触摸事件,只是想知道现在 css :hover 是否足够。
澄清:我不是在询问:hover 支持,这仅在指针驱动的环境中才有意义。我在问设备是否可以并且应该在用户单击/点击时处理可悬停元素(就像 iOS/Android 一样)
【问题讨论】:
-
我不会依赖
:hover在所有设备上提供相同类型的支持。任何基于触摸的浏览器都可以以不同的方式实现它,iOS 处理它的恕我直言。您应该使用 Modernizr 仅在.no-touch设备上绑定:hover事件(这样触摸设备就不会尝试触发自己的:hover状态),然后如果您愿意,则在.touch设备上单独绑定您的触摸事件触发某些元素的点击悬停状态。 -
当某物支持(或不支持)触摸或悬停时,您是否考虑过使用
feature detection?沿着 document.documentElement 中的“ontouchstart” -
@RonniSkansing 功能检测非常可行,并且可能是当今的标准程序。但我很好奇,在过去的 2-3 年中,我们是否为
:hover在非指针设备上的处理建立了任何共同行为。 -
@bitinn 并非所有设备都支持悬停。我们已经建立了针对这些和其他怪癖进行优雅后备的常用方法。如果没有触摸事件,请使用modernizr 或如前所述向悬停元素添加一个类..
标签: javascript css mobile responsive-design