2012-03-28 8 views
1

これを見てください:http://jsfiddle.net/Dh96F/1/jQuery animateは、アニメーションが完了するまで兄弟を再配置します。どうすればそれを止めることができますか?

拡大ボタンは、中央の列の拡大をアニメーション表示します。これを実行すると、アニメーションの進行中に物が次の行にどのようにシフトするかがわかります。列を縮小する場合も同様です。

私はjQueryをかなり新しくしているので、以前はこれを見たことがありませんでした。なぜアニメーションが完了している間、同じ行にすべての兄弟を保持することが可能か、

ありがとうございました。

更新:解決済み - 教育のための@Alnitakに感謝します。私はDrupal 6.x環境でjQueryを使用しています。jquery_updateモジュールはjqueryバージョンを1.3.2までしか持ちません。

私が望むjqueryバージョンを使用するために、このモジュールのハックが見つかりました。あなたのアップグレードの提案はちょうどチケットでした!乾杯!

答えて

4

jQuery 1.3.2は古くなっています - アップグレードを検討してください。

jsfiddleでjQuery 1.4.4以降を選択すると、問題は発生しません。

具体的には、アニメーションが起こっている間、jQueryの1.3.2で.animate()方法はblockの代わりinline-blockであるためにあなたの<ul>のスタイルをオーバーライドしていることが表示されます。それ以降のバージョンはこれをしません。

私は100ms後にアニメーションを停止してからdisplayプロパティを表示するように設定しました。http://jsfiddle.net/qDwYE/を試してください。次に、jQuery 1.4.4に変更し、同じことをもう一度やり直してください。

これはbug #2185のように見えます。

+0

「1.7.1」で動作します。http://jsfiddle.net/Dh96F/2/ – Blender

+1

@Blenderはい、1.4.4またはそれ以降と言いました。 – Alnitak

+0

うん、私は気づいた。私は、古いバージョンのために書かれたコードが最新バージョンで動作することを明示していました。 – Blender

関連する問題