Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测设备是否已启用触摸功能且低于特定屏幕大小_Javascript_Jquery - Fatal编程技术网

Javascript 检测设备是否已启用触摸功能且低于特定屏幕大小

Javascript 检测设备是否已启用触摸功能且低于特定屏幕大小,javascript,jquery,Javascript,Jquery,我想激活/禁用:悬停取决于设备,我想最好的方法是检查设备是否启用了触摸功能,并检测屏幕大小,因为最新的笔记本电脑也有触摸屏。有没有办法用javascript/jquery做到这一点?你可以试试 var is_touch_device = 'ontouchstart' in document.documentElement; 另一种检测方法如下: function is_touch_device() { return !!('ontouchstart' in window); } 如果这是

我想激活/禁用:悬停取决于设备,我想最好的方法是检查设备是否启用了触摸功能,并检测屏幕大小,因为最新的笔记本电脑也有触摸屏。有没有办法用javascript/jquery做到这一点?

你可以试试

var is_touch_device = 'ontouchstart' in document.documentElement;
另一种检测方法如下:

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

如果这是一个选项,Modernizer将能够检测目标浏览器/设备的一系列其他属性之外的触摸:它将在html标记上放置一个适当的类,您可以检测到它

要检测屏幕大小,浏览器窗口大小,可以使用以下方法:

window.screen.availHeight
window.screen.availWidth
您可以将查询和媒体查询组合在一起:

在Modernizer的下载页面上,您创建了一个选中触摸事件的文件。 Modernizer将在您的手机上提供触摸或非触摸课程

在您的CSS中,为每个:将鼠标悬停在插入前。无需触摸。 在下一个示例中,只有宽度大于768px且没有触摸事件的屏幕才会显示:悬停


关于这些问题,我们已经有了相当多的答案,仅供参考,但Modernizer不检测触摸设备,只检测触摸事件:
var touchDevice = (typeof (window.ontouchstart) !== 'undefined') ? true : false;
/* CSS */
a{
    color:#DD0000; /* Dark red */
    text-decoration:none;
}
@media screen and (min-width: 768px) {
    .no-touch a:hover {
        color:#FF0000; /* red */
        text-decoration:underline;
    }
}