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

私は単純な間違いを犯しました:

マージンレフトが「ノーゴー」エリアを登録する場所について混乱しました。私は当初、左マージンが1pxを超える場合はそれで十分だと思っていました。実際、それは実際に私が動かしていた量を引いたものである必要があります。

したがって、代わりに:

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

そのはず:

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

あなたの問題は にあると思いますparseInt()。margin-left の値は「0px」になる可能性があるparseInt()ため、基数8を使用すると思います。(非推奨です)使用する場合はparseInt(frame.css("margin-left"), 10)、基数10(10進数)を使用して文字列を正しい整数値に解析する必要があります。

于 2012-09-20T20:59:14.363 に答える