我使用 event.gesture.preventDefault 做到了:
$('#horizontalCarousel').hammer({ drag_lock_to_axis: true }).on("swipe drag", function(event) {
event.gesture.preventDefault();
if(event.type == "swipe"){
swipeAction(event);
} else {
dragAction(event);
}
});
这是给定的文档
[编辑]
我的回答只是让您知道您使用了错误的 event.preventDefault()。实际上,您还使用了错误的语法来检查事件方向。您应该能够以这种方式管理它,尽管我还没有测试过:
$(document).hammer({ drag_lock_to_axis: true }).on("swipe drag", function(event) {
if (event.gesture.direction == Hammer.DIRECTION_UP || event.gesture.direction == Hammer.DIRECTION_DOWN){
event.gesture.preventDefault();
}
});
改变了 2 件事:event.gesture.direction 和 event.gesture.preventDefault();event.direction 是在旧版本的锤子 js 上执行此操作的方式。
注意:如果你想对滑动事件做一些事情,例如:滑动时水平跳跃更大的量,你可以结合我的答案。