我创建了一个被动水平&垂直图片库基于将触摸事件转换为向上滑动向上,向左,向下和向右。 (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