jQuery エフェクト - アニメーション

jQuery animate()メソッドはカスタムアニメーションを作成することができます。

効果デモ



jQuery

jQuery アニメーション - animate()メソッド

jQuery animate()メソッドはカスタムアニメーションを作成するために使用されます。

構文:

$(selector).animate({params},speed,callback);

必須の params 引数はアニメーションを形成するCSS属性を定義します。

オプションの speed 引数は効果の持続時間を指定します。以下の値を取ることができます:"slow"、"fast"またはミリ秒。

オプションの callback 引数はアニメーションが完了した後に実行される関数の名前です。

以下の例では、animate()メソッドの簡単な使用法を示しています;このメソッドは<div>要素を左に移動し、left属性が250ピクセルになるまで移動します:

$("button").click(function(){
  $("div").animate({left:'250px'});
); 

自分で試してみてください

ヒント:デフォルトでは、すべてのHTML要素には静的な位置があり、移動することができません。

位置を操作する場合は、まず要素のCSS position属性をrelative、fixed、またはabsoluteに設定する必要があります!

jQuery animate() - 複数の属性の操作

アニメーション生成の過程で、複数の属性を同時に使用できます:

$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  );
); 

自分で試してみてください

ヒント:animate()メソッドですべてのCSS属性を操作できますか?

はい、ほぼできます!ただし、重要なことに注意を払う必要があります:animate()を使用する際には、すべての属性名をキャメルケース記法で書かなければなりません。例えば、padding-leftではなくpaddingLeft、margin-rightではなくmarginRightなどです。

また、色彩アニメーションは、コアjQueryライブラリに含まれていません。

色のアニメーションを作成するには、jQuery.comからColor Animationsプラグインをダウンロードする必要があります。

jQuery animate() - 相対値を使用

また、相対値(この値は要素の現在の値に基づいている)を定義することもできます。値の前に+=または-=-を加える必要があります:

$("button").click(function(){
  $("div").animate({
    left:'250px',
    height:'+=150px',
    width:'+=150px'
  );
);

自分で試してみてください

jQuery animate() - 預定値を使用

属性のアニメーション値を"show"、"hide"、または"toggle"に設定することもできます:

$("button").click(function(){
  $("div").animate({
    height:'toggle'
  );
);

自分で試してみてください

jQuery animate() - クエueue機能を使用

デフォルトで、jQueryはアニメーションのためのクエueue機能を提供しています。

これは、animate()コールを連続して書くと、jQueryがこれらのメソッドコールを含む「内部」クエueueを作成し、順次これらのanimateコールを実行するということを意味します。

例 1

別々のアニメーションを実行したい場合、クエueue機能を使用する必要があります:

$("button").click(function(){
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
);

自分で試してみてください

例 2

以下の例では、<div>要素を右側に移動し、テキストのサイズを大きくします:

$("button").click(function(){
  var div=$("div");
  div.animate({left:'100px'},"slow");
  div.animate({fontSize:'3em'},"slow");
);

自分で試してみてください