我的网站上有一些jquery鼠标悬停效果,我需要禁用触摸屏,但是,我怎么知道禁用JQuery的屏幕宽度是多少?目前我只有不到800px。这适用于ipad肖像,但是当我转向它时,JQuery会再次激活。我已经读过Ipad横向宽度是1024px,但这也可能是一个小的无触摸屏的大小。有没有办法可以为某些设备指定效果而不是屏幕宽度?
答案 0 :(得分:2)
要实现这一目标,您应该考虑使用其他方式,而不是为触摸设备禁用鼠标悬停事件添加非触摸设备的事件。
将Modernizr添加到您正在处理的项目中(您可能已经在那里获得了它)。添加后,您可以通过将其作为类添加到HTML元素
来包含“触摸”测试<html class="touch">
如果设备具有触控功能,那么一切都将保持不变,但是如果设备没有触控,则moderizr会将其从touch
转换为no-touch
<html class="no-touch">
然后,您可以将鼠标事件与具有.no-touch
我在代码笔中加了一个例子 - http://rwd.is/VyRl37
这假设您仍在为所有设备加载jQuery库,并决定是否将鼠标加载到基于触摸设备的功能上。如果您正在考虑有条件地加载jQuery本身,那么您应该查看enquire.js以指定的宽度加载jQuery。
如果你想在较小的设备上保留jQuery用于其他功能但想要提高性能,你可以使用Zepto.js作为轻量级替代品。
最后Response.js还允许您在特定断点处调用函数,但仍然遇到不知道是否启用了触摸的问题。