第一次动画执行后发出
Issue after the first animation execution
我有一个触发动画的按钮。当我再次单击该按钮时,它会切换 class 但不透明度在动画之后仍然存在于我的代码中。
所有后续点击都会发生这种情况。我怎样才能解决这个问题?
$( "#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");
}
});
你应该尝试 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");
}
});
问题来自 .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>
我有一个触发动画的按钮。当我再次单击该按钮时,它会切换 class 但不透明度在动画之后仍然存在于我的代码中。
所有后续点击都会发生这种情况。我怎样才能解决这个问题?
$( "#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");
}
});
你应该尝试 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");
}
});
问题来自 .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>