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