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

时间:2015-04-14 11:21:25

标签: javascript jquery touch hammer.js

我在查找/弄清楚如何在使用hammer.js时向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插件实现这一点。

2 个答案:

答案 0 :(得分:6)

您发布的链接来自名为Hammer.js的库。您必须在项目中导入此库才能使其正常工作。

识别之前所需的最小速度,单位是px每毫秒 正如他们所说,那么它每毫秒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});

也许是正确的方法?

Hoy它可以帮助你。


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

然后可能

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

问候

答案 1 :(得分:1)

这是:

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

注意选项对象。以下是我的一些代码的简单示例:

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

编辑:在你看到阈值,posThreshold,时间以上时添加速度..