Hammertime 垂直滚动不起作用

Hammertime vertical scroll not working

我正在使用 Hammerjs/Hammertime

在移动设备上实现滑动功能,但似乎无法使其与垂直滚动一起使用。当我水平滑动时工作正常。这是我的代码:

          var resim = jQuery(".perks-carousel-cont li");

            resim.hammer().on("swipe", function(ev) {
                var targetLi = this;
                animateLisMob(targetLi);
            });

我相信 Hammertime(添加到 hammer js 上)没有启用垂直滚动,只是水平滚动。在调查了这个问题之后,下面的代码行应该可以解决它:

hammertime.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL });

当我实现这个困难时,我得到一个 hammertime is not defined 控制台错误。为了根据他们的文档定义 Hammerstime,我尝试在没有选项参数的情况下添加它:

var hammertime = new Hammer(resim);

但是我得到一个错误:

未捕获类型错误:a.addEventListener 不是函数

不确定我哪里出错了..

滑动手势识别器使 hammer 将 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);
});