如何使用 hammer.js jQuery 插件设置不同的速度来识别滑动?

How to set different velocity to recognise swipes with hammer.js jQuery plugin?

我在查找/弄清楚如何向 hammer.js when using it's jQuery plugin 添加选项时遇到问题。这就是我启动锤子的方式:

            /* Create Hammer object for swipable game cards */
            $('.game-card-mobile')
            .hammer()
            .bind('swiperight swipeleft press', function(ev) {
              console.log(ev.type);
            });

我发现为了执行滑动动作需要相对快速的滑动,我想降低触发事件所需的滑动速度。阅读文档后:http://hammerjs.github.io/recognizer-swipe/ 似乎有一个默认为 0.65 的速度选项,所以我认为可以以某种方式将其更改为 0.5,以便在较慢的滑动时触发事件?

编辑: 如果这有任何帮助,这里有一些用 javascript 编写的刷卡测试示例:https://github.com/hammerjs/hammer.js/blob/master/tests/unit/gestures/test_swipe.js
这显示了如何设置 {threshold: 1} 的示例,我试图在使用 jQuery 插件时实现这一点。

您 post 的 link 来自一个名为 Hammer.js 的图书馆。您必须在您的项目中导入此库才能使其正常工作。

识别前所需的最小速度,单位是px per ms,也就是0.65px每毫秒,然后将其设为 0.50 应该会使事件发生时的触摸速度变慢。

0.50 -> 将在

之前触发

0.80 -> 更难射击

var hammertime = new Hammer(myElement, myOptions);
hammertime.on('swipe', function(ev) {
    alert(ev);
});

hammertime.get('swipe').set({ velocity: 0.80});

也许是正确的方法?

嘿,对你有帮助。


编辑: 如 jquery api 页面所述:Hammer 实例存储在 $ element.data("hammer")。

然后也许

$("#yourdivtoswipe_id").data('hammer').get('swipe').set({ velocity: 0.80});

此致

是这样的:

$("#yourelemenet").hammer({options}).bind("tap", function(ev) {});

注意选项对象。这是我的一些代码中的一个简单示例:

$("#yourelemenet").hammer({threshold: 10, posThreshold:50, time:1000}).bind("tap", function(ev) {});

编辑:在您看到的阈值、posThreshold、上面的时间处添加速度..