0

重複の可能性:
マージンが 2800 ピクセルを超えると停止するインクリメント ボタンの作成

私はスライダーを持っていて、slider_container margin-leftマイナスにすることでそれを進めているので、-700. margin-leftが最後のスライドになったとき、右ボタンでコンテナからの-3500px減算を停止したいと思います。700これは私がこれをやろうとしている方法ですが、うまくいかないようです。最後のスライドを過ぎて移動し続けます。

$("#right").click(function () {
    if ($("#slider_container").css("marginLeft") < -1000) {
        $("#slider_container").animate({
            marginLeft: 0
        }, 450); 
    }
    else {
        $("#slider_container").animate({
            marginLeft: "-=700px"
        }, 450); 
    }
});

ここにJSFiddle を設定しました。サムネイルのいずれかをクリックして、スライダーを表示します

4

1 に答える 1

1

問題は、文字列と数値を比較していることです。

console.log(typeof($("#slider_container").css("marginLeft")));

上記のコードは文字列を返し、これを数値 (-1000) と比較しているため、条件は常に false になります。

文字列を手動で数値に変換することもできます。

$("#slider_container").css("marginLeft").replace("px", "");

または、正確にそれを行う JSizeなどのプラグインを使用します。

于 2012-11-23T14:49:38.360 に答える