Existe uma maneira no jQuery em que eu possa ocultar um elemento, mas não alterar o DOM quando ele estiver oculto? Estou ocultando um determinado elemento, mas quando está oculto, os elementos abaixo dele se movem para cima. Eu não quero que isso aconteça. Quero que o espaço permaneça o mesmo, mas o elemento seja mostrado / oculto à vontade.
Posso fazer isso?
Respostas:
Em vez de
hide()
, use:hide()
define odisplay
estilo comonone
, que remove completamente o elemento do fluxo de documentos e faz com que não ocupe espaço.visibility:hidden
mantém o espaço como está.fonte
css('visibility','visible')
css('visibility', '')
Tente configurar
visibility
parahidden
:fonte
display: none;
o retirará do fluxo de conteúdo, para que você veja seu outro conteúdo se mover para o espaço vazio deixado para trás. (display: block;
traz de volta ao fluxo, empurrando tudo para fora do caminho.)visibility: hidden;
irá mantê-lo dentro do fluxo de conteúdo, ocupando espaço, mas simplesmente tornando-o invisível. (visibility: visible;
irá revelá-lo novamente.)Você vai querer usar
visibility
se quiser que seu fluxo de conteúdo permaneça inalterado.fonte
em outra resposta, note-se que o jQuery
fadeTo
não está definidodisplay:none
para conclusão, portanto, também pode fornecer uma solução aqui, em vez de usar,fadeOut
por exemplo:jQuery, oculte uma div sem perturbar o resto da página
fonte
Eu usei anteriormente
opacity: 0
antes de ver ovisibility: hidden
truque.Mas, em muitos casos,
opacity: 0
é problemático, porque permite que você interaja com o elemento , mesmo que não possa vê-lo! (Como indicado por DeadPassive .)Geralmente não é isso que você deseja. Mas talvez ocasionalmente você possa?
fonte