En mi página tengo un montón (alrededor de 30) nodos dom que deberían agregarse invisibles y se desvanecen cuando están completamente cargados.
Los elementos necesitan una pantalla: estilo de bloque en línea.
Me gustaría usar la función jquery .fadeIn (). Esto requiere que el elemento tenga inicialmente una pantalla: ninguna; regla para ocultarlo inicialmente. Después de fadeIn (), los elementos fuera de curso tienen la pantalla predeterminada: heredar;
¿Cómo puedo utilizar la función de fundido con un valor de visualización que no sea heredar?
$("div").fadeIn().css("display","inline-block");
fuente
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
para asegurarse de que display: inline-block se realiza cuando finaliza el fadeinSolo para desarrollar la buena idea de Phil, aquí hay un fadeIn () que carga fades en cada elemento con la clase .faded a su vez, convertida en animate ():
Antiguo:
Nuevo:
Espero que ayude a otro novato de jQuery como yo :) Si hay una mejor manera de hacerlo, ¡díganos!
fuente
La respuesta de Makura no funcionó para mí, así que mi solución fue
hide
se aplica inmediatamente,display: none
pero antes de eso, guarda el valor de visualización actual en la caché de datos de jQuery, que será restaurado por las siguientes llamadas de animación.Así que las
div
salidas definidas estáticamente comodisplay: none
. Luego se estableceinline-block
y se oculta inmediatamente solo para que se desvanezca de nuevo ainline-block
fuente
De acuerdo con los documentos de jQuery para
.show()
,Entonces, mi solución a este problema fue aplicar una regla CSS a una pantalla de clase: inline-block en el elemento, luego agregué otra clase llamada "ocultar" que aplica display: none; Cuando estaba
.show()
en el elemento, se mostraba en línea.fuente
#el{display:inline-block;display:none;}
y luego ejecutas$('#el').fadeIn();
obtienes inline-block. Pero no es así.Esto funciona incluso con
display:none
ajustes preestablecidos por css. Utilizar(y tambien
$('#element').fadeOut().removeClass('displaytype');
)con la configuración en CSS:
Considero que esto es una solución alternativa, ya que creo que
fadeIn()
debería funcionar para que simplemente elimine la última regla,display:none
cuando se establece en,#element{display:inline-block;display:none;}
pero no funciona correctamente.fuente