jquery.backgroundPosition

背景画像をアニメーションさせる、というので

jQueryとそのプラグインbackground-position animationsを使っていたコーダーの方に

jQuery1.6.4で動かないと言われたので調査した結果。

 

プラグインの記事を調べてたらjQueryのバージョンはどれも1.3止まり。

どうやら1.5から仕様が変更になって、プラグインでその変更になったプロパティを参照していたらしい。

ただそのことに関する記事が見当たらなかったので以下に書いておく。

 

原因:

プラグインで使用していたプロパティ「curAnim」が1.5以降で使われていない。

jQuery1.3で「opt.curAnim = jQuery.extend({}, prop);」としてcurAnimにいれていたプロパティを参照していたが

jQuery1.5から「prop = jQuery.extend( {}, prop );」と上書く用に修正されている。

 

対応:

プラグインでcurAnimを参照していた「var end = toArray(fx.options.curAnim.backgroundPosition);」の部分を

「var end = toArray(fx.end);」にすることで行けた。

1.5以降でこの箇所に変更がないなら最新verでも動くと思う。

 

プラグインいらなくなったんじゃ、と思ってプラグインなしで書いてみたら

ChromeFireFoxとか挙動が違うらしく上手いこと行かなかった。

これについてはどこかのブログに記載されていた気もする。