Y a-t-il un moyen dans jQuery où je peux cacher un élément, mais pas changer le DOM lorsqu'il est caché? Je cache un certain élément mais quand il est caché, les éléments en dessous montent. Je ne veux pas que ça arrive. Je veux que l'espace reste le même, mais que l'élément soit affiché / masqué à volonté.
Puis-je faire ceci?
Réponses:
Au lieu de
hide()
, utilisez:hide()
définit ledisplay
style surnone
, ce qui supprime complètement l'élément du flux de documents et l'empêche de prendre de l'espace.visibility:hidden
garde l'espace tel qu'il est.la source
css('visibility','visible')
css('visibility', '')
Essayez de définir le
visibility
surhidden
:la source
display: none;
le sortira du flux de contenu afin que vous puissiez voir votre autre contenu se déplacer dans l'espace vide laissé derrière. (ledisplay: block;
ramène dans le flux en poussant tout hors du chemin.)visibility: hidden;
le maintiendra dans le flux de contenu en prenant de l'espace mais le rendra simplement invisible. (visibility: visible;
le révélera à nouveau.)Vous voudrez l'utiliser
visibility
si vous souhaitez que votre flux de contenu reste inchangé.la source
dans une autre réponse, il est noté que jQuery
fadeTo
n'est pas définidisplay:none
à la fin et pourrait donc également fournir une solution ici, plutôt que d'utiliserfadeOut
par exemple:jQuery, cachez un div sans déranger le reste de la page
la source
J'utilisais auparavant
opacity: 0
avant de voir levisibility: hidden
truc.Mais dans de nombreux cas
opacity: 0
, cela pose problème, car cela vous permet d'interagir avec l'élément , même si vous ne pouvez pas le voir! (Comme l'a souligné DeadPassive .)Ce n'est généralement pas ce que vous voulez. Mais peut-être que vous le pourriez parfois?
la source