防止垂直触摸移动事件,但通过按钮留下水平触摸和滚动机会

Prevent vertical touchmove event, but leave horizontal touch and scroll opportunity via buttons

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

只需移除用户垂直触摸,但保留水平触摸。想法?

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' 事件中的这段代码阻止用户触摸垂直滚动,但允许按原样滚动。