jQueryのanimateメソッド、名前のとおりアニメーションを表現する際に利用することもあり、とても重宝しています。例えば、以下のようなコード。
$('#animate_div').animate({width:'500px'}, 1000)
上記のコードは、animate_divというIDのついた要素のwidthを1秒掛けて500pxにするアニメーションを実現するコードです。
ところで、このanimateメソッド、jQuery最高の教科書という本を読んで知ったのですが、JavaScriptオブジェクトの操作もできるみたいなのです。これだけだとちょっと意味が分からないと思うので、下記にカウントダウンのような動きをするサンプルコードを記してみます。
console.time('count') $({'count':10}).animate( {'count': 0},{ duration: 10000, progress: function(){ $('#countdown').text(this.count); }, easing: 'linear', complete: function(){ console.timeEnd('count'); } });
こうすることで、{‘count’:10}というJavaScriptオブジェクトを操作して、10秒(10000ミリ秒)で{‘count’:0}という状態にまで変化させます。progressというオプションはアニメーションのステップごとに実行する関数です(参考:.animate() | jQuery 1.9 日本語リファレンス | js STUDIO)。
というわけで、以下実行結果。
ちなみに、console.timeとconsole.timeEndはそれぞれの引数に指定した文字列が同じ組の間の時間をコンソールに表示するメソッドです。試してみると、10秒より少し大きい数値がコンソールに表示されると思います。
コメント