响应式设计 - 禁用触摸屏的jquery效果

时间:2013-02-04 11:21:00

标签: responsive-design screen-orientation

我的网站上有一些jquery鼠标悬停效果,我需要禁用触摸屏,但是,我怎么知道禁用JQuery的屏幕宽度是多少?目前我只有不到800px。这适用于ipad肖像,但是当我转向它时,JQuery会再次激活。我已经读过Ipad横向宽度是1024px,但这也可能是一个小的无触摸屏的大小。有没有办法可以为某些设备指定效果而不是屏幕宽度?

1 个答案:

答案 0 :(得分:2)

要实现这一目标,您应该考虑使用其他方式,而不是为触摸设备禁用鼠标悬停事件添加非触摸设备的事件。

Modernizr添加到您正在处理的项目中(您可能已经在那里获得了它)。添加后,您可以通过将其作为类添加到HTML元素

来包含“触摸”测试
<html class="touch">

如果设备具有触控功能,那么一切都将保持不变,但是如果设备没有触控,则moderizr会将其从touch转换为no-touch

<html class="no-touch">

然后,您可以将鼠标事件与具有.no-touch

类的html元素绑定

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

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

如果你想在较小的设备上保留jQuery用于其他功能但想要提高性能,你可以使用Zepto.js作为轻量级替代品。

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