【发布时间】:2013-06-18 12:00:08
【问题描述】:
我创建了一个带有始终可见的上一个和下一个按钮的轮播。这些按钮有一个悬停状态,它们变成蓝色。在 iPad 等触控设备上,悬停状态是粘性的,因此在点击后按钮会保持蓝色。我不想要那个。
我可以为每个按钮添加一个
no-hover类ontouchend,并制作 我的 CSS 是这样的:button:not(.no-hover):hover { background-color: blue; }但这可能对性能很不利,而且不会 处理像 Chromebook Pixel 这样的设备(它同时具有 触摸屏和鼠标)正确。我可以在
documentElement中添加一个touch类并制作我的CSS 像这样:html:not(.touch) button:hover { background-color: blue; }但这也不适用于同时具备触控和触控功能的设备 鼠标。
我更喜欢删除悬停状态ontouchend。但这似乎是不可能的。聚焦另一个元素不会删除悬停状态。手动点击另一个元素可以,但我似乎无法在 JavaScript 中触发它。
我找到的所有解决方案似乎都不完美。有完美的解决方案吗?
【问题讨论】:
-
这是一个非常好的解决方案,@dasfdsa!但是,它不适用于同时支持触摸屏和鼠标的设备。
标签: javascript css hover touch