Na minha página, eu tenho um monte (cerca de 30) nós dom que devem ser adicionados de forma invisível e desaparecer quando estiverem totalmente carregados.
Os elementos precisam de um estilo display: inline-block.
Eu gostaria de usar a função jquery .fadeIn (). Isso requer que o elemento inicialmente tenha um display: none; regra para ocultá-lo inicialmente. Após o fadeIn (), os elementos fora do curso têm a exibição padrão: herdar;
Como posso usar a funcionalidade de esmaecimento com um valor de exibição diferente de herdar?
$("div").fadeIn().css("display","inline-block");
fonte
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
para ter certeza de que display: inline-block é feito quando o fadein terminarApenas para concretizar a boa ideia de Phil, aqui está um fadeIn () que carrega fades em cada elemento com a classe. Desbotada por sua vez, convertida em animate ():
Velho:
Novo:
Espero que ajude outro newb da jQuery como eu :) Se houver uma maneira melhor de fazer isso, diga-nos!
fonte
A resposta de Makura não funcionou para mim, então minha solução foi
hide
aplica-se imediatamente,display: none
mas antes disso, ele salva o valor de exibição atual no cache de dados jQuery, que será restaurado pelas chamadas de animação subsequentes.Portanto, o
div
começa definido estaticamente comodisplay: none
. Em seguida, é definido comoinline-block
e imediatamente oculto apenas para ser desbotado de volta parainline-block
fonte
De acordo com os documentos do jQuery para
.show()
,Portanto, minha solução para esse problema foi aplicar uma regra css a uma exibição de classe: bloco embutido no elemento, então adicionei outra classe chamada "ocultar" que aplica exibição: nenhum; Quando eu
.show()
no elemento, ele mostrou inline.fonte
#el{display:inline-block;display:none;}
e executar$('#el').fadeIn();
get inline-block. Mas isso não acontece.Isso funciona mesmo com
display:none
predefinido por css. Usar(e também
$('#element').fadeOut().removeClass('displaytype');
)com configuração em CSS:
Considero isso uma solução alternativa, pois acredito que
fadeIn()
deva funcionar de forma que apenas remova a última regra -display:none
quando definida como,#element{display:inline-block;display:none;}
mas está removendo ambas com defeito.fonte