2017-01-12 17 views
2

ある間隔でいくつかの要素にDOMを追加していますが、フェードインしたいのですが、最初に表示されて消えてしまい、その後にフェードインするだけです。追加された要素をフェードイン

var el = document.getElementById('cont'); 
el.innerHTML = ''; 
var toAppend = getElementsToAppend(); 
$(el).hide().append(toAppend).fadeIn(300); 

これをどのようにスムーズに行う必要がありますか?

+2

追加する前に 'toAppend'に' display:none; 'を付けることはできますか? – nurdyguy

+0

'display:none; 'を追加しようとしました。 jQueryから隠すのではなく、 '#cont'要素に渡します。 – VladNeacsu

答えて

1

まず、JSとjQueryのネイティブメソッドが混在しているようです。私はできるだけ多くのものを貼っておくことをお勧めします。 $(el)fadeIn()を呼び出していて、DOMに追加されたコンテンツではないことにも注意してください。 elementsToAppend()がDOMElementsでの配列を返すことを仮定

、あなたは、単一のjQueryのセレクタでそれらのすべてを置くことができ、あなたが追加した後fadeIn()を呼び出す前に、それらの上にhide()を呼び出します。これを試してみてください:

var $toAppend = $(getElementsToAppend()).hide(); 
$('#cont').empty().append($toAppend); 
$toAppend.fadeIn(300); 
関連する問題