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