2011-12-06 6 views
1

jQueryを使用して、テーブル内の行を非表示にしています。ここでjQuery slow squishesテーブル

は私jsFiddleです:あなたが質問をクリックすると、答えはでスライドが、それは質問をsquishesことhttp://jsfiddle.net/Nbf75/5/

注意してください。 アニメーションを設定しないでアニメーションを設定しても、アニメーションが必要です(必ずしもあらかじめ設定されたスローアニメーションではありませんが、アニメーションがスムーズにアニメーション化されます)。

アニメーションを取得するにはどうすればよいでしょうか?

編集:これは、Chromeで起こるが、Firefoxは、だけではなく、ショーや非表示のフェードアウトとフェードインを使用してまだ他のブラウザで

+0

あなたのフィドルにスライドアニメーションが設定されているように見えません。正しいURLを貼り付けましたか? –

+0

ええ、私はちょうど私のポストのものに続き、それは正しいものです。赤い質問をクリックしてください –

+0

firefox 8.0で正常に動作するように見えます。 – gregorej

答えて

2

これは、レンダリングエンジンは、テーブルのセルをどのように扱うかのアーティファクトです。 divの答え(td内)をラップし、その上で直接操作することで回避できます。divtdは(自動的にサイズ調整されるので)スーツに従い、効果はすべてのブラウザで同じになります。

See it in action

1

をテストしていないではありません。あなたは押しつぶされることなく希望の効果を達成します。

例:

$('table tr td.question').toggle(function() { 
    $($(this).parent('tr').next('tr').children('.answer')).fadeOut('slow'); 
}, function() { 
    $($(this).parent('tr').next().children('.answer')).fadeIn('slow'); 
}); 

http://jsfiddle.net/Nbf75/10/

+0

なぜこれは動作しますか? hide/showの動作は、奇妙なことです。何が起こっているのか知っているといいですね。 – mrtsherman