在使用swiperight
时,我遇到了使Hammer.js(使用jQuery插件)正常运行的问题。因此,我需要使用panright
。
向右平移时,我的事件会发生很多次。
如何更新,只运行一次? (然后当用户在另一张幻灯片上向右或向左滑动时再次)
$('.slide').hammer().on('panright', doSomething);
答案 0 :(得分:6)
我认为你应该捕获一个panend事件。例如:
var myElement = document.getElementById('myID');
var mc = new Hammer.Manager(myElement);
mc.add(new Hammer.Pan({direction:Hammer.DIRECTION_HORIZONTAL, threshold:80, pointers: 0}));
mc.on("panend", function(ev) {
if(ev.direction == Hammer.DIRECTION_RIGHT)
{
//do what you want here
}
});
答案 1 :(得分:1)
还有其他一些名为' swipeleft'和' swiperight'。这将响应1次滑动事件,而不是pan的多次触发事件。
var mc = new Hammer($('.screen'));
mc.on("swipeleft", moveHandler);
mc.on("swiperight", moveHandler);
function moveHandler(event){
// do something
}
答案 2 :(得分:1)
您可以通过 isFinal 属性过滤事件:
var mc = new Hammer($('.screen'));
mc.on("swipeleft", moveHandler);
mc.on("swiperight", moveHandler);
function moveHandler(event){
if(event.isFinal){
// do something on the last animation frame
}
}