2011-12-20 9 views
0

私はDavid Walsh tutorialからいくつかのコードをmootoolsでアニメーション削除しています。mootools FX.slideOutはテーブル行を折りたたみます

テーブル行にMootools FX.slideを使用すると、行を水平に折りたたんで並べ替えてから、目的の効果が得られません。

あなたはどのように私は、アップ、この効果にはむしろ左崩壊のより垂直方向にスムーズにスライドを作ることができますか?look-- http://jsfiddle.net/gNvvT/

を取るしたい場合はフィドルがここにありますか

ありがとうございます!

答えて

2

恐らくFx.Slideはテーブル行では動作しませんが、ブロック要素でのみ動作します。
ディミタル・クリストフがあなたに言ったように。

私はこの問題を回避するためにあなたのフィドルを修正しました。あなたが投稿したコードから、あなたはMootoolsでかなり実用的だと思われるので、コードにコメントを書きました。私はあなたがトリックを取得すると確信しています。

http://jsfiddle.net/gNvvT/5/

それはあなたの現実世界アプリケーション上で動作するかどうか、私に教えてください!

編集。以前のテストから残ったいくつかの無駄なコードがありました。私はそれを削除し、私はフィドルのURLを更新しました。

+0

かなり、+1努力のために:テーブルを見ると、私は最近、表のデータのためにうんざりしています。 http://shouldiusetablesforlayout.com/ –

+0

私は同意します。ブロック要素を使用してテーブルを作成する方法は常にあります...しかし、実際にはテーブルがかなり快適な場合があります。 –

+0

@ DimitarChristoff--あなたの助けをありがとう!私は両方の答えを受け入れることができたらいいと思う。私はあなたに、代替案と事例を示す時間を取っていただきありがとうございます。私はおそらくdivでこのフォームを再構築することになるだろうと同意しますが、現時点では大きな変更を加えたくないので、lorenzoの回避策を使用しています。お二人のおかげです。 – julio

2

TRは実際のブロックスタイルの要素ではないため、display: table-row(iirc)です。

Fx.Slideクラスは実際に、それは基本的に、溶解しているように見せかけるために採用しようとしただけで2トリックがあります。

  1. 可視から隠しに設定したオーバーフロー、 - TRの文脈では、無になりますがセンス。
  2. (オプション)ラッパーの要素をラップして折りたたむことができますが、ラッパーは要素の直接の親になります。これはdivであり、テーブルではできません。

それは、その後

などが要素の高さを操作し、それを小さくすることができ、それは、ディスプレイ/オーバーフローを変更し、それはすべて、それがテーブルを崩壊などした後、面白い行くようにジャンプが起こります。

fadeや利用可能な場合はスケール変換のような別の方法を検討する必要があります。

+0

私は厄介な修正のために働いています... –

+0

それはトリッキーな必要はありません、あなたが何であるかによって異なります。これはシンプルなCSSの拡張とスケールです:http://jsfiddle.net/dimitar/gNvvT/6/ - サポートされていない場合は、単に '.fade()'を使ってフォールバックすることができます –

+0

正確に動作するものを作ろうとしましたジュリオが意図した通り。 CSS3のトランジションは使用しません。しかし、 'destroy.delay()'の面白い使い方は、それが '.delay(function {){this.destroy();}よりもはるかに簡単であるとは考えていませんでした。bind()) 'XD –