防止垂直touchmove事件,但通过按钮保持水平触摸和滚动机会

时间:2015-08-04 07:55:46

标签: javascript jquery ios css touch

我有一个带有jQuery小部件的iPad应用程序。窗口小部件可以水平和垂直滚动。我需要通过触摸事件阻止垂直滚动,但留下通过按钮滚动的机会(如滑块)。

需要删除用户垂直触摸,但保持水平触摸。想法?

1 个答案:

答案 0 :(得分:0)

mainContainer.on('touchmove', function(e) {

    var xStart, yStart = 0;

    xStart = e.touches[0].screenX;
    yStart = e.touches[0].screenY;

    var xMovement = Math.abs(e.touches[0].screenX - xStart);
    var yMovement = Math.abs(e.touches[0].screenY - yStart);
    if (friendsList.has($(e.target)).length
        || msgContainer.has($(e.target)).length) {

        if ((yMovement * 3) > xMovement) {
            e.preventDefault();
        }

    }

});

此代码内有' touchmove'事件阻止用户触摸垂直滚动,但允许滚动。