2012-06-01 12 views
6

tengo este comportamiento extraño con .fadeIn()jQuery fadeIn deja la opacidad a 0

Si escribo

$('#MyDiv').show(); 

El div demuestra muy bien.

Sin embargo, si escribo

$('#MyDiv').fadeIn(400); 

el div espectáculos, pero con la opacidad 0!

La línea de antes es:

$('#MyDiv').hide() 
    .html(TheHTML) 
    .css('top', 0); 

ACTUALIZACIÓN: si escribo $('#MyDiv').show(400);

El div también se mantiene en la opacidad 0.

+2

se puede hacer una demostración? – xdazz

+1

si un elemento tiene opacidad: 0 === no está visible. Pero dices: "** ¡La div muestra pero con opacidad 0! **" Realmente no entiendo –

+0

¿De dónde viene 'TheHTML'?El problema sin duda viene de otro lado, como que tal vez tu div está vacío, por lo que su altura y ancho es igual a 0 o algo así – romainberger

Respuesta

5

Algunos CSS está anulando su div cuando es hidden..Better añadir el estilo de opacidad a su div como 100.

más haga,

$('#MyDiv').css('opacity','100'); 

después de su llamada fadeIn ..

+9

El valor de opacidad de CSS es 0 a 1. ¿100? Un poco grande – designermonkey

+1

Pero la opacidad aumenta a 1 completamente por encima de la transición del efecto fadeIn ... – Macbernie

1

A continuación se hará más visible como desea

$('#MyDiv').animate({ 
    opacity: 1 
},400); 

Usted puede seguir los siguientes pasos:

$('#MyDiv').fadeIn(400, function(){ 
    $(this).css('opacity', 1) 
}); 

DEMO

Pero creo que tu también debería funcionar bien. Ver here

+1

¿'FadeIn' no anima la opacidad? Entonces tal vez el problema está en otro lado. –

0

Compruebe si tiene un

opacity: 0 !important; 

//or 

opacity: 0; 

En el CSS en ese caso hay que cambiar manualmente opacity a sí mismo como esto

$('#MyDiv').fadeIn(400,function(){ 
    $(this).css('opacity',1); 
}); 

Marque esta fiddle. El primer div nunca aparecerá.

4

Pruebe la función jQuery .fadeTo.

.fadeTo(duration, opacity [, callback]) 
.fadeTo(duration, opacity [, easing] [, callback]) 

muestra:

$('#book').fadeTo('slow', 0.5, function() { 
    // Animation complete. 
});