如何包含多方向“touchmove”事件

时间:2013-12-26 17:54:50

标签: javascript jquery ontouchevent

我创建了一个被动水平&垂直图片库基于将触摸事件转换为向上滑动向上向左向下向右(1)

现在,我正在将其转换为响应式,其中下一个或上一个元素与touchmove上的活动元素一起拖动。

所有工作都按预期工作,没有任何问题,除了在touchmove方向偏离时事件干扰。例如,当移动到 left 并且移动向上向下时,后两个事件会触发导致错误放置元素。

我已尝试stopImmediatePropagation()并比较(dragDirection != "up" || dragDirection != "right" || dragDirection != "down"),但仍然无法摆脱它。

以下是{em>左拖动touchmove事件的代码。

/* Left */
if (startX > moveX && XmoveTo > 10 && Math.abs(startY - moveY) < 10 && (dragDirection != "up" || dragDirection != "right" || dragDirection != "down")) {
    dragDirection = "left";
    e.stopImmediatePropagation(); /* has no effect */
    $(".visible").css({
        left: "-" + XmoveTo + "px"
    }).next().css({
        left: $(".visible").width() + "px"
    }).removeClass("hidden").css({
        left: $(".visible").width() - XmoveTo + "px",
        top: 0
    });
}

请检查此fiddle以获取完整代码并测试(2)。将图像拖动到任何方向(向左和向上=向下/向右和向下=向前),然后沿对角线移动。您会注意到图像放错了位置。

(1) Image gallery

(2) Emulating Touch Events - Chrome

0 个答案:

没有答案