クロスブラウザーな回転

jQueryを利用したクロスブラウザーな回転を作りました。
http://rtilabs.net/files/2010_09_04/rotate.html
jquery 1.4.4 以上だとエラーになってしまうのバグを教えてもらったので、対策バージョンを作成しました。
http://rtilabs.net/files/2011_02_03/rotate.html
IEで正しく動かなかったので修正しました。
http://rtilabs.net/files/2011_09_16/rotate.html


モダンなブラウザは css3 の transformで回転させています。
モダンではないIEはfilterでがんばって回転させています。

IEでの回転の計算式は http://p2b.jp/200912-CSS3-Transform-for-IE8 さんを参考にしています。
IEだと filter を利用した回転なので、IE5.5 から回るはずです。
IEすごいですね。


jqueryの拡張として作っているので、楽に使えると思います。
ついでに、$(elem).css({rotate: 10 }) みたいなシュガーとか $(elem).rotate(10) とかできます。甘々です。


animate() も作っているので、 簡単にぐるぐる回ります。

var deg = Math.floor( Math.random() * 1000 );
$('#target').animate({rotate: deg});

いろいろ甘すぎて糖分が気になる人向けに $(elem).css({transform: 'rotate(256deg)'}); とかもできるようにしています。
甘くないですね。




本当は、、、 border-radius とかも再現したかったんですが、、、

http://fetchak.com/ie-css3/ を途中まで移植したんですけど、
border-radiusして回転するととんでもないことになるんですよね、、、


完全に動作しない作成途中のバージョン
http://rtilabs.net/files/2010_09_04/rotate_bug.html


どうせ、9/15にIE9がでてここら辺すべて解決されるから、もう作らなくてもいいよね。
もう、ゴールしていいよね。。。

ソースコードはご自由にお使いください。

そのうち、jquery周りのソースの解説をしたいような。
最近技術ネタをまったく書いていなかったので反省中(´・ω・`)