View on GitHub

Jquery.a3d.js

CSS3 Keyframe Animation from JavaScript

Download this project as a .zip file Download this project as a tar.gz file

複雑なアニメーションを簡単&シンプルに実装できます

CSS3キーフレームアニメーションをJavaScriptから動的に使用するためのプラグインです。また、CSS3アニメーションを強力に機能拡張することができます。

機能

対応ブラウザ

Firefox, Chrome, Safari, Opera ,IE10

使い方

基本的なアニメーション

アニメーションの実行はa3dメソッドを使用します。

サンプルコード

  //キーブレームアニメーションの定義
  var a3d_define = {
      frames:{
          "0%":
              {
                  trans:{"rotate":"0deg"}
               },
          "50%":
               {
                   trans:{"rotateY":"180deg","y":"-100px","x":"-100px"}
                },
          "100%":
                {
                  trans:{"rotate":"360deg","y":"-200px","x":"-200px","scale":"0.3"}
                 }
      }             
      ,
      config:{
          duration:"4s",
          state:"running",
          easing:"ease"
      }
 };

//アニメーションの実行
$(".target_image").a3d(a3d_define);    

パラメータ詳細

◆アニメーションの情報を定義

{
    frames:{…},
    config:{…},
    complete:function(){…},
    start:function(){…},
    iteration:function(){…},

}

◆フレーム情報詳細

{
…
"50%":
    frames:{
        "trans":{…},
        "styles":{…},
        "ext":{finction(){…}}           
    },
…
}

・座標移動(translate, translate3d, translateX, translateY, translateZ)

・拡大縮小(scale, scale3d, scaleX, scaleY, scaleZ)

・回転(rotate, rotate3d, rotateX, rotateY, rotateZ)

・スキュー(skew, skewX, skewY)

・マトリクス処理(matrix, matrix3d)

・透視投影(perspective)

また、座標移動に関して、次のような簡易的な記述を推奨します。

{x:"400px",y:"300px",z:"100px"}

さらに、指定方法を絶対位置、相対位置、初期位置が選択できます。

 数値の前に=(イコール)を記述することで、エレメントの現在位置を基準とした座標移動を指定できます。

(例)エレメントの現在位置を基準としてX軸方向へ400px Y軸方向へ-300px移動します

{x:"=+400px",y:"=-300px"}

 数値の前に*(アスタリスク)を記述することで絶対位置指定になります。

(例)画面左端から X軸方向へ400px Y軸方向へ300pxの位置

{x:"*400px",y:"*300px"}

数値だけの指定の場合は、エレメントの初期位置(DOM追加)が基準となります。←CSS3キーフレーム標準。使いにくい

◆コンフィグ情報詳細

{
…
"config":
    {
        duration:"4s",
        state:"running",
        easing:"ease",
        count:"1",
        delay:"0",
        direction:"",
        mode:"forwards",
        maintain:"true"    
    }
…
}

・ease(開始時点と終了時点を滑らかに再生する)

・linear(一定の間隔で再生する)

・ease-in(開始時点をゆっくり再生する)

・ease-out(終了時点をゆっくり再生する)

・ease-in-out(開始時点と終了時点をゆっくり再生する)

この他に、cubic-bezier関数を使って、イージングを独自に設定することも可能です。

アニメーション連鎖

複数のアニメーション情報を連鎖的に登録することができます。

この機能を使うと、複数のアニメーション情報を組み合わせて、一連の動作を定義することができ、非常にシンプルかつ強力に動作します。 すべてのアニメーションが完了した時に呼び出される関数を登録できます。

$("target").a3dChain([a3d,a3d,…] , function(){…});

デモ

デモのコードを見ていただくのが手っ取り早いかも、、、

ライセンス