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の実行を遅らせる方法」と合わせることで
様々なタイミングでアニメーションを制御することが可能になったりもします。
ご参考までに。。。