我将使用Hammer.js来寻找水平滑动手势,我已经设计了一个简单的函数,用于在向左或向右滑动时点击按钮。它运行良好,但在触摸设备上垂直滚动无法正常工作,或者出现故障和奇怪的问题。
以下是该函数代码:
以下是该函数代码:
var panelSliderPan = function() {
// Pan options
myOptions = {
// possible option
};
var myElement = document.querySelector('.scroll__inner'),
mc = new Hammer.Manager(myElement);
mc.add(new Hammer.Pan(myOptions));
// Pan control
var panIt = function(e) {
// I'm checking the direction here, my common sense says it shouldn't
// affect the vertical gestures, but it blocks them somehow
// 2 means it's left pan
if (e.direction === 2) {
$('.controls__btn--next').click();
// 4 == right
} else if (e.direction === 4) {
$('.controls__btn--prev').click();
}
};
// Call it
mc.on("panstart", function(e) {
panIt(e);
});
};
我曾试图为识别器添加水平方向,但并没有真正起到帮助的作用(不确定是否正确):
mc = new Hammer.Manager(myElement, {
recognizers: [
[Hammer.Pan,{ direction: Hammer.DIRECTION_HORIZONTAL }],
]
});
谢谢!