2012-01-26 11 views
7

は、これは私のコードです:jQueryの.hide()フェードイン()

$('.items').html(response).hide().fadeIn(); 

問題は、これがロードされたときにページが原因.hide()...があることまで「ジャンプ」ということですこれを行うための他の方法?その後、

+2

の不透明度を持つ追加されますか?一度それが隠されていると、それは再び表示されるまで隠されているはずです – danwellman

+0

ああ..私の悪い..ちょっとタイプミスが質問を編集します! – Mackelito

+0

ページが読み込まれたとき(そしておそらく、ajax呼び出しによって更新されたとき)に、 ".items"要素が表示されますか?ちょうど更新されたビットに注意を引くために、隠しとフェードインのアイデアはありますか? – nnnnnn

答えて

17

あなたが代わりに不透明度を使用した可能性があり、あなたは維持したい場合要素の寸法はそのままです:

あなたは既存のコンテンツと新しいの間のスムーズなのトランジションを表示したい場合は0
+0

クリーンでシンプルな今、なぜ私はそれを考えなかったのですか? ;) どうも! – Mackelito

+0

問題はありません:) –

+1

これも動作することがわかりました...もう一方の方が速いですか? $(レスポンス).hide()。appendTo(ajaxElement).fadeIn(); – Mackelito

4

CSSを使用して非表示にし、必要なときにそれをフェード:

CSS:

.items { 
    display:none; 
} 

はJavaScript

$('.items').html(response).fadeIn();

+0

問題は、これはajaxレスポンスです。ページの読み込み中にアイテムが表示されているだけです。 – Mackelito

+0

他にもいくつかのオプションがあります.HTMLを置き換えて、divを強調表示して変更を表示します。 divを押して、前のdivをスライドさせてから、新しいdivを上にスライドさせます....またはfadeOut()/ fadeIn()? – ManseUK

0

は、以下を試してみてください。

$(function(){ 
    $('.items').fadeOut(function(){ 
     $(this).html(response).fadeIn(); 
    }) 
}); 
1

それはその後すぐに持つ、最初に追加された要素の点滅効果を避けるため、これはクリーンなソリューションですその不透明度が0

にこのように設定elemは、すでにあなたが二回)(非表示を持っているのはなぜ0

var elem = $(response).css({'opacity': 0}); 
$('.items').html(elem); 
elem.animate({'opacity': 1});