我创建了一个带有始终可见的上一个和下一个按钮的轮播。这些按钮有一个悬停状态,它们变成蓝色。在 iPad 等触控设备上,悬停状态是粘性的,因此在点击后按钮会保持蓝色。我不想那样。
我可以为每个按钮添加一个
no-hover
类ontouchend
,并使我的 CSS 像这样:button:not(.no-hover):hover { background-color: blue; }
但这可能对性能非常不利,并且不能正确处理 Chromebook Pixel(同时具有触摸屏和鼠标)之类的设备。我可以向 中添加一个
touch
类documentElement
并使我的 CSS 像这样:html:not(.touch) button:hover { background-color: blue; }
但这在同时具有触摸和鼠标的设备上也无法正常工作。
我更喜欢删除悬停状态ontouchend
。但这似乎是不可能的。聚焦另一个元素不会删除悬停状态。手动点击另一个元素可以,但我似乎无法在 JavaScript 中触发它。
我发现的所有解决方案似乎都不完美。有完美的解决方案吗?