我正在使用在这里找到的 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
}
或者,如果您只关心少数设备,您可以嗅探用户代理,但这可能有点笨拙并且容易遗漏一些东西。
关于javascript - 在计算机上禁用 HammerJS 滑动和拖动事件? (即禁用鼠标事件?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16685456/