Hammertime垂直滚动不起作用

时间:2016-11-07 10:18:43

标签: javascript mobile hammer.js

我正在使用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不是函数

不知道我在哪里出错..

1 个答案:

答案 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);
});