检测设备是否是触屏设备的方法,Modernizr是这样实现的:

// Modernizr现在使用的方法
('ontouchstart' in window)
|| window.TouchEvent
|| window.DocumentTouch && document instanceof DocumentTouch

// Modernizr早期使用的方法
function isTouchDevice() {
  try {
    document.createEvent('TouchEvent');
    return true;
  } catch (e) {
    return false;
  }
}

但是随便在Mac上的Chrome78.0中验证了一下,发现是存在window.TouchEvent的,所以所谓的触屏检测方法其实并不可靠,可以看一下这篇You Can't Detect A Touchscreen

参考链接:Modernizr源码

标签: none

添加新评论