Velocity.jsでCSSのプロパティと値を丸ごと変数にする方法

Velocity.jsでアニメーションさせるCSSのプロパティとその値を丸ごと変数に入れて動かす方法を調べました。

当初

<button class="btn">translateX:"+=100"</button>

となっているHTMLからjQueryで

var val = "{"+$(".btn").html()+"}";

として値を取得しそのままVelocity.jsで使おうとしていたのですが、動きませんでした。

以下のようにHTMLを変更し、splitで分割しブラケット記法にした変数に代入すると丸ごと変数を利用できます。

HTML

<button class="btn">translateX:+=100</button>

あとでブラケット記法にした変数に代入する際に自動的にクオーテーションが追加されるので値のクオーテーションをとりました。

JS

$(".btn").on('click',function(){
 
var opt = $(this).html().split(":");//コロンで値を分割して配列optに代入
var val = {};//ブラケット記法のための変数
val[opt[0]] = opt[1];//プロパティに対してその値を代入
 $(this).velocity(
 val ,
 "easeInSine",
 );
});

button要素をクリックすると、クリックしたボタンがX軸方向に100px移動します。

応用したサンプルはこちら