Change css property after stop animation

2020-04-18 07:06发布

问题:

I want to change a text color after a animation is completed.

I try this :

http://jsfiddle.net/WvAaK/2/

But doesn't work ! :/

var menuState="closed";
$("#MENU").click(function() { 
if (menuState=="closed") {
$("#SOUSMENU").animate({height: "300px"}, 1000);
menuState="open";
} else if (menuState=="open"){
$("#SOUSMENU").animate({height: "0px"}, 1000);
menuState="closed";}});
$("#MENU").click(function() { 
if (menuState=="open") {
  $("h1").css('color','red');
} else if (menuState=="closed"){
$("h1").css('color','black');
  menuState="closed"; }
});

Thanks for your precious help !

回答1:

Use the callback of .animate

var menuState="closed"; 
$("#MENU").click(function() { 
    if (menuState=="closed") {
        $("#SOUSMENU").animate({height: "300px"}, 1000, function() {
            $("h1").css('color','red');    
        });
        menuState="open";
    } else if (menuState=="open"){
        $("#SOUSMENU").animate({height: "0px"}, 1000, function() {
            $("h1").css('color','black');
        });
        menuState="closed";
    }
});

Demo: http://jsfiddle.net/WvAaK/3/