2017-02-02 10 views
0

単純なボタンアニメーションがあります。 button1をクリックすると、別のボタン(button2)がアニメーション化されてその位置に移動し、button1がアニメーション化されて非表示になります。アニメーションが再生された場合にのみ、別のボタンをクリックしてボタンアニメーションを元に戻します。

また、ボタンの上にドロップダウン選択があります。ドロップダウンをクリックすると、アニメーションを元に戻す(後方に再生する)必要があるので、button1が再び表示され、ボタン2が非表示になります。しかし、button2が表示されている場合は、ドロップダウンをクリックしてアニメーションを元に戻す必要があります。

は私が similar questionを掲載コード

JS FIDDLE.

を簡略化しますが、私はそれがあまりにも複雑作っていたので、何の回答を得ませんでした。私はこれがより明確であり、物事を簡素化するのに役立つことを願っています

ありがとうございました!私が理解から

Htmlの

<div class="wrap"> 
    <select class="options"> 
    <option value="option1">Volvo</option> 
    <option value="option2">Saab</option> 
    <option value="option3">Fiat</option> 
    </select> 

    <div class="btn-wrap"> 
    <button class="btn1"> 
    Add to cart 
    </button> 
    <button class="btn2"> 
    Checkout 
    </button> 
    </div> 

</div> 

のCss

.wrap{ 
    width:100%; 
    height: 300px; 
    background: gray; 
} 

.btn-wrap{ 
    position:relative; 
    background:green; 
    max-width;200px; 
    width:200px; 
    height:40px; 
    overflow:hidden; 
    margin:4%; 
} 
button{ 
    width:200px; 
    height:40px; 
    border:0px; 
    outline:none; 
    color:white; 
    font-size:14px; 
    font-weight:bold; 
    display:inline-block; 
    cursor:pointer; 
} 

.btn1{ 
    background-color:blue; 
} 
.btn2{ 
    background-color:red; 
} 

.options{ 
    width:200px; 
    height:50px; 
    background:white; 
    margin:7%; 
    border:0px; 
    text-indent:20px; 
} 

JS

$(".btn-wrap").click(function() { 

    $('.btn1').css('position', 'relative').animate ({ top:'-40px' } ); 
    $('.btn2').css('position', 'relative').animate ({ top:'-40px' } ); 

}); 
+0

「私は、同様の質問を投稿が、私はそれがあまりにも複雑作っていたので、何の回答を得ていない。私はこれがより明確であると思います。」 - 単に**その質問をより明確に編集するのはなぜですか? –

+0

1日前に質問された質問を編集した場合、誰も編集していないことに気付くことはありません。加えて、私の古いポストにこの追加情報を追加するだけで、私の古いポストは余分に大きくなり、誰かを助けてくれるのを恐れるでしょう。 – Patrick

+0

それは同じ質問ではありませんが、両方の問題を解決します。 – Patrick

答えて

1

、あなたがしなければならなかったすべて.optionがクリックされたかどうかをチェックするイベントを作成しています。

Demo

JS

let undo = false; 

$(".btn-wrap").click(function() { 
    if(undo == false) { 
     $('.btn1').css('position', 'relative').animate ({ top:'-40px' } ); 
     $('.btn2').css('position', 'relative').animate ({ top:'-40px' } ); 

     undo = true; 
    } 
}); 

$(".options").on("click", function() { 
    $('.btn1').css('position', 'relative').animate ({ top:'0px' } ); 
    $('.btn2').css('position', 'relative').animate ({ top:'20px' } ); 

    undo = false; 
}) 
+0

ええ、私は "If"文が必要だったと思います。 今私が推測している問題は、ドロップダウンをクリックしてリセットしてもボタンアニメーションがまだ動作する必要があることです。 – Patrick

+1

私はコード –

+0

を編集しました。soooo多く!これは完璧です。 – Patrick

関連する問題