2016-09-24 120 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

的问题来自.css(opcity = "0")@Mohammad在评论中提及,只是解决这个问题,你的代码将正常工作:

$("#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

你应该尝试bind,而不是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原始文章中的问题。 –