jQueryでアニメーションを実行させる「.animate()」。

一つのfunctionの中で複数実行させることも可能だったりするのですが、
アニメーション実行後、実行したアニメーション処理が完了した時点で別の処理を実行させたい、
という場合がたまにあったりするのですが、その記述方法をつい忘れてしまうことがあるので、
ここにメモ書きがてら紹介してみます。

jQueryでアニメーション処理完了後に別の処理を実行

$(function(){
	$(セレクタ).stop().animate({アニメーション処理},1000,function(){
		~ここに処理を記載~
	});
});

例えば、画像にマウスオーバーした際に、
画像をアニメーション拡大させ、
拡大処理完了後に影を付ける(CSS3で)場合は。

$(function(){
	$('img').hover(function(){
		$(this).stop().animate({width:'200px',height:'200px'},500,function(){
			$(this).addClass('shadow');
		});
	},function(){
		$(this).removeClass('shadow');
		$(this).stop().animate({width:'100px',height:'100px'},500);
	});
});

こんな感じの書き方で実現できます。

これを実行させると以下の様な感じになります。(画像にマウスオーバーしてください)

画像の拡大処理が完了した時点で、画像に影が付きます。
影を付ける処理はCSSでクラス「shadow」を付けることで実現しています。

先日の遅延処理「jQueryでsetTimeoutを使ってfunctionの実行を遅らせる方法」と合わせることで
様々なタイミングでアニメーションを制御することが可能になったりもします。

ご参考までに。。。

サンプルファイルをダウンロードしたい方はこちらから