4

簡単な水平スライダーを作るときに問題が発生しました。左右の矢印 (img) を使用すると、位置が -100% または +100% になり、これで問題なく動作します! :) スライダーが -400% の場合、右矢印は消えるはずですが、jquery を使用してこれを確認しても何も起こりませんか? また、左矢印が 0% のときは消えるはずです。

これが私のコードです:

$('.right img').live('click', function(){
    $('.play').stop(true, true).animate({
        marginLeft: "-=100%"
    }, 1000);
$('.left img').css("visibility", "visible")
if($('.play').css("margin-left")="400%") {
    $('.right img').css("visibility", "hidden")     
    }
});

$('.left img').live('click', function(){
    $('.play').stop(true, true).animate({
        marginLeft: "+=100%"
    }, 1000);

if($('.play').css('margin-left')=='-2520px'){           
    $('.right img').css("visibility", "visible")
}
else if($('.play').css("margin-left")=0) {
    $('.left img').css("visibility", "hidden")
}
});

% の代わりに px を使用すると動作します! しかし、レスポンシブ コードの場合、% を使用したいと思います。

下手な英語でごめんなさい:) お時間ありがとうございました!!

4

2 に答える 2

1

==は、数値を比較するときに使用されます。

=は比較演算子ではなく代入演算子です。

jQuery css プロパティはパーセンテージではなくピクセルを返すため、この場合は JavaScript を使用するのが最も簡単です。

if(document.getElementsByClass('play').style.marginLeft == "400")
于 2013-12-23T18:04:45.183 に答える
0

比較の代わりに代入を使用しています:

if($('.play').css("margin-left")="400%") {

次のようにする必要があります。

if($('.play').css("margin-left")=="400%") {

else if($('.play').css("margin-left")=0) {

次のようにする必要があります。

else if($('.play').css("margin-left")==0) {

それ以外は、あなたがやろうとしていることを行うための一種のスパゲッティ・ウエスタン・ウェイです.

オーバーフローの非表示に対する私の提案は、マージンの代わりに絶対配置を使用することです。しかし、私は脱線します...

于 2013-01-25T03:58:28.600 に答える