我在移动设备上优化了一个网站,并制作了一个弹出菜单。我已禁用更改菜单按钮的颜色:悬停。我这样做是因为 iPhone 认为最后一次单击以保持悬停伪类。
然而,现在我在黑莓上进行测试,他们有一个桌面风格的光标,因此可以从鼠标悬停时改变颜色的元素中受益。
是否可以禁用 iPhone 的悬停颜色但不能禁用黑莓?更一般地说,有没有办法只为黑莓等非触摸屏设备设置悬停颜色,因为只有它们才能真正将鼠标悬停。谢谢
我在移动设备上优化了一个网站,并制作了一个弹出菜单。我已禁用更改菜单按钮的颜色:悬停。我这样做是因为 iPhone 认为最后一次单击以保持悬停伪类。
然而,现在我在黑莓上进行测试,他们有一个桌面风格的光标,因此可以从鼠标悬停时改变颜色的元素中受益。
是否可以禁用 iPhone 的悬停颜色但不能禁用黑莓?更一般地说,有没有办法只为黑莓等非触摸屏设备设置悬停颜色,因为只有它们才能真正将鼠标悬停。谢谢
这回答了你问题的第一部分。尝试使用 Modernizr,然后添加一个 appleOS 测试。
Modernizr.addTest('ipad', function () {
return !!navigator.userAgent.match(/iPad/i);
});
Modernizr.addTest('iphone', function () {
return !!navigator.userAgent.match(/iPhone/i);
});
Modernizr.addTest('ipod', function () {
return !!navigator.userAgent.match(/iPod/i);
});
Modernizr.addTest('appleios', function () {
return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
});
从那里,如果它是 iOS,您可以向正文添加一个类,并将悬停类仅应用于非 iOS 设备。
理想情况下,您可以只使用 Modernizr 添加到不支持触摸的浏览器的“notouch”主体类,但根据我的经验,即使设备不支持触摸,它也不会将此类添加到黑莓浏览器。如果您发现不同,请告诉我!