1

我有一个启用滑动手势的画廊。通过向左/向右滑动,用户浏览图库。我需要限制滑动 div 的位置,使其不会偏离轨道,即一旦您到达页面,显然所有图像都在右侧,所以我不希望用户向左滑动(到空白空间) .

我尝试使用“大于”,但它不起作用。

var theWidth = $(window).width();

function processingRoutine() {
    var swipedElement = document.getElementById(triggerElementID);

    if ( swipeDirection == 'left' ) {
        $(".frame").animate({marginLeft: '-='+theWidth});
    } else if ( swipeDirection == 'right' ) {
        $(".frame").animate({marginLeft: '+='+theWidth});

        if ( parseInt($(".frame").css("margin-left")) > 1 ) {
            $(".frame").animate({marginLeft: "0px"});
        }
    }
}

您可以在此处查看整个源代码:http: //joinersart.co.uk/mtest

4

3 回答 3

1

改变:

$(".frame").animate({margin-left: "0px"});

到:

$(".frame").animate({marginLeft: "0px"});
于 2012-09-20T21:08:10.803 回答
0

我相信您的问题与parseInt(). 因为 margin-left 的值可以是 '0px'parseInt()我相信将使用 8 的基数。(已弃用)如果您使用parseInt(frame.css("margin-left"), 10)它,则应使用基数 10(十进制)将字符串解析为正确的整数值。

于 2012-09-20T20:59:14.363 回答
0

我犯了一个简单的错误:

我对 margin-left 应该在哪里注册“禁止”区域感到困惑。我最初认为如果 margin-left 超过 1px 就足够了。事实上,它实际上需要减去我移动的数量。

所以而不是:

  if ( parseInt($(".frame").css("margin-left")) > 1 ){...

它应该是:

   if ( parseInt($(".frame").css("margin-left")) > -theWidth ){...
于 2012-09-21T11:03:38.757 回答