javascript - 在计算机上禁用 HammerJS 滑动和拖动事件? (即禁用鼠标事件?)

标签 javascript hammer.js

我正在使用在这里找到的 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/

相关文章:

javascript - IE9支持CSS3过渡效果吗?

javascript - 错误 : You called the draw() method with the wrong type of data rather than a DataTable or DataView

javascript - 似乎无法将选项传递给 Hammer.js Jquery

javascript - hammer.js 滑动禁用 native 捏缩放

javascript - 使用 Internet Explorer 条件注释显示 javascript 警报

javascript - 处理拖动时的速度/惯性

algorithm - 转换 UX `pan` 手势以设置没有上限的线性值的策略

javascript - ES6 模块和循环依赖

javascript - 自动高亮部分单词

javascript - 在拾取和突出显示时重置表行颜色时如何处理 javascript 中的第 n 个选择器