Quello che ho fatto in passato è inserire segnaposto-zero a dimensione zero nel punto in cui voglio inserire il mio nuovo elemento.
ho quindi animate che segnaposto per la dimensione che voglio, quindi inserire una versione nascosta dell'elemento voglio mostrare all'interno del segnaposto e dissolvenza in vista.
Una volta che il fade-in è completa I 'scartare' il segnaposto per rimuoverlo, utilizzando il seguente codice:
// Essentially, this does the opposite of jQuery.wrap. Here is an example:
//
// jQuery('p').wrap('<div></div>');
// jQuery('p').parent().unwrap().remove();
//
// Note that it is up to you to remove the wrapper-element after its
// childNodes have been moved up the DOM
jQuery.fn.unwrap = function() {
return this.each(function(){
jQuery(this.childNodes).insertBefore(this);
});
};
Tutte le caratteristiche di animazione jQuery hanno i gestori di 'onComplete' che consentono di kick-off diverso parti dell'animazione una volta completate, quindi non è un compito ingrato per ottenere tutto ciò.
Inoltre, è molto utile mantenere un modello JavaScript di tutti i tuoi elementi invece di affidarsi al DOM-traversal lento e al metodo jQuery .data().
Non so se fosse davvero quello che stavo cercando, ma sembra così bello che non posso fare a meno di segnarlo come risposta. –