将 panright 与 Hammer.js 一起使用时如何仅触发一次方法?
How to fire method only once when using panright with Hammer.js?
我在使用 swiperight
时遇到了让 Hammer.js(使用 jQuery 插件)正常运行的问题。因此,我需要使用 panright
.
向右平移时,我的事件会触发很多很多次。
如何将其更新为仅运行一次? (然后当用户在另一张幻灯片上向右或向左滑动时再次)
$('.slide').hammer().on('panright', doSomething);
我认为您应该捕获一个 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
}
});
还有其他事件称为 'swipeleft' 和 'swiperight'。这将响应 1 个滑动事件而不是平移的多个触发事件。
var mc = new Hammer($('.screen'));
mc.on("swipeleft", moveHandler);
mc.on("swiperight", moveHandler);
function moveHandler(event){
// do something
}
您可以通过 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
}
}
我在使用 swiperight
时遇到了让 Hammer.js(使用 jQuery 插件)正常运行的问题。因此,我需要使用 panright
.
向右平移时,我的事件会触发很多很多次。
如何将其更新为仅运行一次? (然后当用户在另一张幻灯片上向右或向左滑动时再次)
$('.slide').hammer().on('panright', doSomething);
我认为您应该捕获一个 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
}
});
还有其他事件称为 'swipeleft' 和 'swiperight'。这将响应 1 个滑动事件而不是平移的多个触发事件。
var mc = new Hammer($('.screen'));
mc.on("swipeleft", moveHandler);
mc.on("swiperight", moveHandler);
function moveHandler(event){
// do something
}
您可以通过 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
}
}