小编典典

有没有办法检测悬停机制(或触控板/鼠标)?

all

目前@media (any-hover: hover)在我的 css 中有条件,以前也有(hover: hover),但我都没有做我想要的:我只想在移动设备植入了某种悬停机制(例如触控板、鼠标但不限于)时启用悬停事件。
但是,hover:hover至少在 iPad 上它根本不会刺激悬停事件(我知道hover检测设备的主要交互是否支持悬停),甚至我没有连接魔术键盘(它有一个触控板)。然后我切换到any-hover,这一次 iPad 刺激悬停,即使没有连接任何附件,并且与触摸交互。

因此,有没有办法检测设备是否连接了可悬停的设备?我应该使用pointer: fine还是pointer: coarse这样做?或者有没有办法在 JS 中这样做?我不希望它简单地检测是否连接了鼠标,而是检测任何具有类似悬停机制的设备。


阅读 60

收藏
2022-08-16

共1个答案

小编典典

所以你想要一些与普通 iPad 不匹配的东西,如果有人将鼠标插入 iPad则匹配?

pointer: fine通常就足够了,但您可以使用(any-hover: hover) and (pointer: fine). 您真的只想为具有细粒度指针控制的设备启用悬停内容。

你也可以用 JS 来表达:

let mql = window.matchMedia('(any-hover: hover) and (pointer: fine');

然后我改为any-hover,这一次iPad即使没有连接任何配件也能刺激悬停,并与触摸交互。

这似乎是一个错误。

2022-08-16