首页 > 解决方案 > Javascript检测用户是否有鼠标

问题描述

这不是为了设计,我正在制作一个教程,我会要求用户点击或单击事物。

现在我正在使用:

("ontouchstart" in document.documentElement);

但这在带有触摸屏的笔记本电脑上失败了。

标签: javascriptmobilemouse

解决方案


您可以为此使用CSS 媒体查询。要检测鼠标,您的查询将如下所示:

@media (hover: hover) and (pointer: fine) {
    // 'hover' means a device that supports hovering
    // 'pointer: fine' means an accurate pointing device, as opposed to limited pointing device like touchscreen (where you would use 'coarse' value
}

请注意,此查询也会检测触摸板,但不会检测智能手机、触摸屏、基于触控笔的屏幕或其他控制器,如 Nintendo Wii、Microsoft Kinect。

要从 JavaScript 运行相同的查询,您可以使用Window.matchMedia()

if (matchMedia('(hover: hover) and (pointer: fine)').matches) {
  // You code
}

推荐阅读