0

是否可以捕获用户在页面元素上向左滑动的时间,然后在滑动发生时运行函数?我有一些解决方案,但是如果您在页面上向下滚动,并且您的手指在元素上稍微向左滑动,它会运行该功能。

我目前的解决方案:

function touchMove() {
    finalCoord.x = event.targetTouches[0].pageX;
    changeX = originalCoord.x - finalCoord.x;
    var changeY = originalCoord.y - finalCoord.y;
    if (changeY < threshold.y && changeY > (threshold.y * -1)) {
        changeX = originalCoord.x - finalCoord.x;
        if (changeX > threshold.x) {
            $(document).off("touchmove", ".row");
            if ($(event.target).attr("class") === "row-inside") {
                var element = $(event.target);
            }
            if ($(event.target).attr("class") === "row-l") {
                var element = $(event.target).parent();
            }
            if ($(event.target).attr("class") === "row-r") {
                var element = $(event.target).parent();
            }
            setTimeout(function () {
                $(document).on("touchmove", ".row", function () {
                    touchMove();
                });
            }, 800);
        }
    }
}
function touchStart() {
    originalCoord.x = event.targetTouches[0].pageX;
    finalCoord.x = originalCoord.x;
}
$(document).on("touchmove", ".row", function () {
    touchMove();
});
$(document).on("touchstart", ".row", function () {
    touchStart();
});
}

我考虑过使用 jQuery mobile,但该swipeLeft事件仅在滑动结束时触发,而不是在滑动期间触发。

4

1 回答 1

0

术语是拖。

我尝试了很多方法,目前最好的方法是使用 Hammer.js。

使用https://github.com/EightMedia/hammer.js/wiki/Getting-Started Hammer.js dragleft 事件。

在此处查看您的移动设备上的一些示例:http: //eightmedia.github.io/hammer.js/examples/carousel.html对于 Dragleft 尝试轮播。

于 2013-08-12T23:13:15.707 回答