禁用HammerJS在计算机上的滑动和拖动事件?(即禁用鼠标事件?)
Disable HammerJS swipe and drag events on computer? (i.e. disable on mouse events?)
我在这里使用Hammer.js:
http://eightmedia.github.io/hammer.js/
和我设置/创建Hammer对象如下:
var hammertime = Hammer(document.body)
.on("pinchin drag swipe", function(event) {
var alpha_value = $( "#collide_alpha" ).slider( "option", "value" );
var beta_value = $( "#collide_beta" ).slider( "option", "value" );
if(alpha_value < 50) {
$( "#collide_alpha" ).slider( "value", ~~(+alpha_value+(event.gesture.distance/30)) );
} else if(alpha_value <= 100) {
$( "#collide_alpha" ).slider( "value", ~~(+alpha_value-(event.gesture.distance/30)) );
}
if(beta_value < 50) {
$( "#collide_beta" ).slider( "value", ~~(+beta_value+(event.gesture.distance/30)) );
} else if(beta_value <= 100) {
$( "#collide_beta" ).slider( "value", ~~(+beta_value-(event.gesture.distance/30)) );
}
});
之后,我试着这样做:
// Try to disable the mouse movements on computer
hammertime.STOP_MOUSEEVENTS = true;
hammertime.NO_MOUSEEVENTS = true;
但是这不起作用,那么我应该如何禁用仅针对计算机的事件?但让它们在iPhone和Android上保持活跃。我现在不关心Windows 8的触摸屏,所以我不介意它不适用于那些。
我通常会在发射锤子之前尝试检测设备是否是触摸屏。最好只在需要的时候加载,而不是不需要的时候加载。
最常用的方法之一是
var is_touch_device = 'ontouchstart' in document.documentElement;
然后把你的锤子初始化包在
中if(is_touch_device){
// hammer stuff
}
如果您只关心几个设备,您也可以嗅探用户代理,但这可能有点笨拙,容易丢失一些东西。
我使用Modernizr来决定是否应该运行hammer:
if ( Modernizr.touch )
{
$("#cr-stage").hammer().on( "swipeleft swiperight swipeup swipedown doubletap pinchin", gesture );
$("#cr-stage").hammer().on( "release", releaseGesture );
}
这比用户代理嗅探更可靠。
相关文章:
- JsFiddle上的鼠标事件不起作用
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- node-webkit-从父窗口捕获iframe鼠标事件
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- 捕获鼠标关闭事件并在 Mozilla 中获取 clientX 和 clientY
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 如何在asp:linkButton上显示鼠标悬停事件上的图像
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 必须更改单击事件鼠标输入鼠标输出事件
- 当一个标记位于打开的infobox -事件鼠标悬停与infobox插件谷歌地图API v3
- 带有按钮的鼠标事件:鼠标悬停、onclick、静态