2016-09-24 7 views
1

アニメーションをトリガーするボタンがあります。ボタンをもう一度クリックすると、クラスはトグルされますが、不透明度はアニメーションの後も自分のコードに残ります。最初のアニメーション実行後の問題

これは、すべての結果クリックで発生します。これをどうすれば解決できますか?

$("#menu-button").click(function() { 
    $("#right-sidebar").toggleClass("display"); 

    if($("#right-sidebar").hasClass("display") == false){ 
     $("#right-sidebar").css(opacity = "0"); 
    } else { 
     $("#right-sidebar").animate({ 
      opacity: "1" 
     }, "slow"); 
    } 
}); 
+1

問題は '.css(opacity =" 0 ")'です。それを '.css(" opacity "、" 0 ")に変更してください。 ' – Mohammad

+0

'(opacity =" 0 ") 'はあなたが望むものではありません。 –

答えて

0

の問題だけでこの問題を解決し、あなたのコードが正常に動作します、@Mohammadコメントで述べたよう.css(opcity = "0")から来bindを試してみてください:

$("#menu-button").click(function() { 
 
    $("#right-sidebar").toggleClass("display"); 
 

 
    if(!$("#right-sidebar").hasClass("display")){ 
 
    $("#right-sidebar").css("opacity", "0"); 
 
    } else { 
 
    $("#right-sidebar").animate({ 
 
     opacity: "1" 
 
    }, "slow"); 
 
    } 
 
});
#right-sidebar{ 
 
    width:80%; 
 
    height: 100px; 
 
    float: right; 
 
    background-color: green; 
 
    color: white; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="btn btn-lg btn-primary" id="menu-button">menu</button> 
 

 
<div id='right-sidebar' class="display">right sidebar</div>

0

代わりclick

$("#menu-button").bind("click", function() { 
     $("#right-sidebar").toggleClass("display"); 

     if($("#right-sidebar").hasClass("display") == false){ 
     $("#right-sidebar").css("opacity","0"); 
     } else { 
     $("#right-sidebar").animate({ 
        opacity: 1 
       }, "slow"); 
     } 
    }); 
+0

これはコードの問題ではありません – Mohammad

+0

これは問題を解決するように見えますが、OPのオリジナル投稿では 'click('は問題ではありません。 –

関連する問題