使用 Javascript 检测触摸屏设备

2022-08-30 04:31:13

在Javascript/jQuery中,如何检测客户端设备是否有鼠标?

我有一个网站,当用户将鼠标悬停在项目上时,它会向上滑动一个小信息面板。我正在使用jQuery.hoverIntent来检测悬停,但这显然不适用于iPhone / iPad / Android等触摸屏设备。因此,在这些设备上,我想还原以点击以显示信息面板。


答案 1
var isTouchDevice = 'ontouchstart' in document.documentElement;

注意:仅仅因为设备支持触摸事件并不一定意味着它完全是触摸屏设备。许多设备(例如我的华硕Zenbook)同时支持点击和触摸事件,即使它们没有任何实际的触摸输入机制。在设计触摸支持时,请始终包括单击事件支持,并且永远不要假设任何设备都是独占的。


答案 2

找到窗口测试。触摸在Android上不起作用,但这样做:

function is_touch_device() {
  return !!('ontouchstart' in window);
}

请参阅文章:使用 JavaScript 检测“触摸屏”设备的最佳方法是什么?