Lo que he hecho en el pasado es insertar a tamaño cero marcador de posición-divs en el punto donde quiero insertar mi nuevo elemento.
A continuación, animo ese marcador de posición al tamaño que quiero, luego inserto una versión oculta del elemento que quiero mostrar dentro del marcador de posición y la atenúo en la vista.
Una vez que el fundido de entrada es completa I 'desenvolver' el marcador de posición para eliminarla, usando el siguiente código:
// 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);
});
};
Todas las características de animación jQuery tienen manipuladores 'onComplete' que le permiten dar inicio a diferentes partes de la animación una vez que se han completado, por lo que no es demasiado tarea para lograr todo esto.
Además, es muy útil para mantener un modelo de JavaScript de todos sus elementos en vez de confiar en el método lento jQuery .data() DOM-transversal y.
No sé si esto era realmente lo que estaba buscando pero parece tan genial que no puedo evitar marcarlo como la respuesta. –