我正在使用Hammerjs/Hammertime
在移动设备上实现滑动功能,似乎无法使用垂直滚动功能。当我水平滑动时工作正常。这是我的代码:
var resim = jQuery(".perks-carousel-cont li");
resim.hammer().on("swipe", function(ev) {
var targetLi = this;
animateLisMob(targetLi);
});
我相信Hammertime(添加到锤子js)不会启用垂直滚动,只是水平。在查看问题后,以下代码行应该修复它:
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL });
当我实现这个艰难的时候我得到一个hammertime没有定义控制台错误。为了根据他们的文档定义Hammerstime,我尝试添加没有选项参数:
var hammertime = new Hammer(resim);
但后来我收到了一个错误:
未捕获的TypeError:a.addEventListener不是函数
不知道我在哪里出错..
答案 0 :(得分:2)
滑动手势识别器使锤子将touch-action: pan-y
css属性应用于其所在的DOM节点,
这基本上告诉浏览器忽略所有垂直手势,你没有垂直滚动。
要解决这个问题,只需在hammer的选项{touchAction: 'auto'}
中指定,
没有jQuery它看起来像那样:
var hammertime = new Hammer(domElement, {touchAction: 'auto'});
hammertime.on('swipe', function(ev) {
var targetLi = this;
animateLisMob(targetLi);
});