Home > 技術 > JavaScriptでアニメーション(animate)するときに気をつけたいこと

JavaScriptでアニメーション(animate)するときに気をつけたいこと

サンプルコードを書いていないんだけど、ちょっと基本的かつ意外とハマる問題かな~と思ったのでメモメモ。
とは言っても2点だけw

スライドするdivタグの中にはoverflow:autoなdivタグは入れないほうがいいかも

このシチュエーションは意外あると思う。
divタグ(div1)の中に複数のdivタグ(div2)が入っていて、外側のdiv1をアニメーションでスライドさせてdiv2の部分を切り替えるシチューエーションの場合、div2がoverflowをautoになっているとFirefoxチラチラする。
他のブラウザではこのチラチラ現象は起きないんだけど、どうしてもFirefoxで起きてしまう。
(IE6.0、IE7.0、Safari3.1、Opera9.5ではチラチラしない)

解決策

これを防ぐにはoverflowをhiddenとかにしてautoじゃない状態にする。

ちなみにjQueryでは、animate関数(3026行目の中でこのチェックをしているがアニメーションするdivタグの中にいるdivタグには適用されないので自分でhiddenにする必要がある。

アニメーションする前にhiddenにして、アニメーションが終わったらautoに戻す感じね。

スライドするときにmarginをマイナスとかにしてスライドするとIE6で重くなる場合がある

jFlowというスライド用のjQueryプラグインではmarginLeftmarginTopを使って対象エレメントの位置をずらしているんだけど、もしかするとIE6.0でめちゃくちゃ重くなる可能性がある。

たとえば画像がたくさん入っているdivタグが何枚もあって、そんなエレメントをmarginを使ってスライドする場合は結構厳しい。IE7.0ではすんなりスライドしてくれるんだけど、IE6.0だけカクカクしちゃう。
本来jQueryのanimateはブラウザ依存しないでキレイにアニメーションしてくれるんだけど、このmarginだけは特別なのかしら?

解決策

position:absoluteで位置をスライドするようにする。
とりあえずこれでIE6.0でもカクカクせずに、本来のサクサク感を出すことができる。

まとめ

全ブラウザで同じ感じでアニメーションさせるのは、たとえjQueryを使っていてもなかなか難しい・・・
日々精進でありますっ!

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1092
Listed below are links to weblogs that reference
JavaScriptでアニメーション(animate)するときに気をつけたいこと from HouseTect, JavaScript Blog

Home > 技術 > JavaScriptでアニメーション(animate)するときに気をつけたいこと

このブログについて
author:hisasann.com

description:就職しました!
最近はJavaScript、Perl、Rails、Java(Struts+Spring+iBatis)なんかをいろいろといじっています。
今猛勉強中なのがActionScriptです。
アニメーション楽しい!



他に運営しているブログ:

利用しているWebサービス :


Tag cloud
カテゴリー
月別アーカイブ
jQuery Meetup

Visit jQuery Meetups
Powered by
Powered by
Movable Type Commercial 4.261

Page Top