Gibt es in jQuery eine Möglichkeit, ein Element auszublenden, das DOM jedoch nicht zu ändern, wenn es ausgeblendet ist? Ich verstecke ein bestimmtes Element, aber wenn es ausgeblendet ist, bewegen sich die Elemente darunter nach oben. Ich möchte nicht, dass das passiert. Ich möchte, dass der Raum gleich bleibt, aber das Element nach Belieben angezeigt / ausgeblendet wird.
Kann ich das tun?
Antworten:
hide()
Verwenden Sie stattdessen :hide()
Legt dendisplay
Stil auf festnone
, wodurch das Element vollständig aus dem Dokumentfluss entfernt wird und kein Speicherplatz belegt wird.visibility:hidden
hält den Raum wie er ist.quelle
css('visibility','visible')
css('visibility', '')
Versuchen Sie , die
visibility
zuhidden
:quelle
display: none;
nimmt es aus dem Inhaltsfluss heraus, sodass Sie sehen, wie sich Ihre anderen Inhalte in den leeren Bereich bewegen, der zurückgelassen wird. (display: block;
Bringt es zurück in den Fluss und schiebt alles aus dem Weg.)visibility: hidden;
hält es innerhalb des Inhaltsflusses und nimmt Platz ein, macht es aber einfach unsichtbar. (visibility: visible;
wird es wieder offenbaren.)Sie möchten verwenden,
visibility
wenn Ihr Inhaltsfluss unverändert bleiben soll.quelle
In einer anderen Antwort wird darauf hingewiesen, dass jQuery's
fadeTo
nichtdisplay:none
nach Abschluss festgelegt wird und daher möglicherweise auch hier eine Lösung bietet, anstattfadeOut
beispielsweise Folgendes zu verwenden:jQuery, verstecke ein Div, ohne den Rest der Seite zu stören
quelle
Ich habe es vorher benutzt,
opacity: 0
bevor ich denvisibility: hidden
Trick gesehen habe.In vielen Fällen
opacity: 0
ist dies jedoch problematisch, da Sie damit mit dem Element interagieren können , obwohl Sie es nicht sehen können! (Wie von DeadPassive hervorgehoben .)Normalerweise ist das nicht das, was du willst. Aber vielleicht gelegentlich?
quelle