javascript - 锤子2.0 : Pinching a scrolling element

标签 javascript jquery jquery-events hammer.js

我有一个像这样的水平滚动元素:

enter image description here

<ul class="playlist">
   <li>element1</li>
   <li>element2</li>
   .
   .
   <li>elementN</li>
</ul>

https://jsfiddle.net/3um9n6zk/

在触摸设备上,用户可以滑动滚动并选择一个元素。

我还希望能够捏住容器来调整元素的比例。使用锤子2.0:

function pinchMe($container) {

    var options={
        touchAction:"pan-x"
 //     touchAction:"none"
    };
    var hammer = new Hammer.Manager($container[0], options),
        cInitScale;

    hammer
        .add( [
                new Hammer.Pinch({ threshold: 0 }),
                new Hammer.Tap(),
                new Hammer.Press()
        ])
        .on("pinchstart", function(e) {
                cInitScale = VSIZE;
                window.console.log("pinch start is ",VSIZE);
        })
        .on("pinch pinchmove", function(ev) {
            // if pan-x is activated, I dont' get these events until a pinchend
            window.console.log("pinch");
            resizeHot (cInitScale * ev.scale);
        })
        .on("tap", tapHandler);
        .on("press", pressHandler);
}

我的问题是,一旦我使用 Hammer 来控制捏合,(原生 html)滚动就不再起作用。

  • 当我将 pan-x 设置为触摸操作时,在捏合开始后不会发送捏合事件,只有当捏合结束时我才会收到事件。我怀疑中间事件作为滚动的一部分被忽略(即使按下了 2 次触摸)

  • 当我不设置 pan-x 时,滚动不起作用(如预期),而捏合起作用

是否可以同时拥有这两种东西?

最佳答案

你好像有一个错字。该选项名为 touchAction,单数形式。您提供的“pan-x”值在您的情况下是正确的,并且允许您水平滚动。

我已经更新了你的 fiddle 来尝试一下:https://jsfiddle.net/3um9n6zk/1/

关于javascript - 锤子2.0 : Pinching a scrolling element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510980/

相关文章:

javascript - 在Android运行时访问浏览器的DOM内容

jquery - 尝试在 DIV 中添加内容

javascript - 无法加载资源 : the server responded with a status of 500 (Internal Server Error) in Bind function

javascript - 输入 5 个字符时执行的按键事件

javascript - 随机改变背景图片

javascript - 将文本区域拆分为数组

javascript - AVA测试问题

javascript - 当标签上的单击事件时,将类添加到表单中的标签

javascript - 将 cookie 设置为视频播放几秒后显示的 div?

javascript - jQuery Mobile $ ("#popup").popup ("open");转换页面后不工作