1

我的网站上有一些 jquery 鼠标悬停效果,我需要禁用触摸屏,但是,我怎么知道禁用 JQuery 的屏幕宽度?目前我的分辨率低于 800 像素。这适用于 ipad 肖像,但是当我把它变成风景时,JQuery 再次被激活。我读过 Ipad 横向宽度为 1024 像素,但这也可能是小型非触摸屏的大小。有没有办法可以为某些设备指定效果而不是屏幕宽度?

4

1 回答 1

2

要实现这一点,您应该考虑以另一种方式工作,而不是禁用触摸设备的鼠标悬停事件添加非触摸设备的事件。

Modernizr添加到您正在处理的项目中(您可能已经在其中获得了它)。添加后,您可以通过将其作为类添加到 HTML 元素来包含“触摸”测试

<html class="touch">

如果设备具有触摸功能,那么一切都将保持原样,但是如果设备没有触摸功能,则 moderizr 会将其从touchto 转换为 tono-touch

<html class="no-touch">

然后,您可以将鼠标事件绑定到具有类的 html 元素上.no-touch

我在代码笔中放了一个例子 - http://rwd.is/VyRl37

这假设您仍在为所有设备加载 j​​Query 库并决定是否加载基于触摸设备的鼠标悬停功能。如果您正在查看有条件地加载 jQuery 本身,那么您应该查看enquire.js以指定宽度加载 jQuery。

如果您想在较小的设备上保留 jQuery 的其他功能,但又想提高性能,您可以考虑使用Zepto.js作为轻量级替代方案。

最后, Response.js还允许您在特定断点处调用函数,但您仍然会遇到不知道它是否启用触摸的问题。

于 2013-02-04T12:36:29.743 回答