jQuery中有一種方法可以隱藏元素,但在隱藏時不會更改DOM嗎?我隱藏了某個元素,但隱藏時,它下面的元素向上移動。我不希望這種情況發生。我希望空間保持不變,但要隨意顯示/隱藏元素。jQuery隱藏元素,同時在頁面佈局中保留空間
我可以這樣做嗎?
jQuery中有一種方法可以隱藏元素,但在隱藏時不會更改DOM嗎?我隱藏了某個元素,但隱藏時,它下面的元素向上移動。我不希望這種情況發生。我希望空間保持不變,但要隨意顯示/隱藏元素。jQuery隱藏元素,同時在頁面佈局中保留空間
我可以這樣做嗎?
相反的hide()
,使用:
css('visibility','hidden')
hide()
設置display
風格none
,可以完全脫離文檔流和原因刪除元素它不佔用空間。
visibility:hidden
保持原樣。
我會如何重新展示它? – slandau
'css('visibility','visible')' –
嘗試將visibility
到hidden
:
$("#id").css("visibility", "hidden");
display: none;
將把它帶出內容流,所以你會看到你的其他內容進入留下的空白空間。 (display: block;
將它帶回到推動一切的流程中。)
visibility: hidden;
將使其保持在佔用空間的內容流中,但只是使其不可見。 (visibility: visible;
將再次顯示它。)
如果您希望內容流保持不變,則需要使用visibility
。
值得注意的是jQuery的fadeTo
不設置完成display:none
所以也可以在這裏提供一個解決方案,而不是使用fadeOut
例如:
我我以前用過opacity:0
看到這個visibility:hidden
的詭計。
我沒有意識到任何優點,實際上渲染可能會比較慢。但無論如何這是一個替代方案。
一個顯著不同的是,你不能交互使用具有visibility:hidden
但用戶可以與具有opacity:0
元素交互元素(如集中或點擊)。這可能是隱藏元素的缺點。 (指出DeadPassive。)
您不能與隱藏元素進行交互,而您可以使用不透明度爲0的元素。 – DeadPassive
還是有優勢的;) – feskr
@feskr如果你能想到一個有利的情況,請分享! – joeytwiddle
如何給它零寬度? – mrtsherman
@mrtsherman:零寬度是不鼓勵的:許多屏幕閱讀器(如盲人或低視力用戶所使用的)仍然會以這種方式讀出'隱藏'的內容,這可能會混淆視聽內容在這個時間點應該是可用的。使用CSS可見性:隱藏是去這裏的方式。 – BrendanMcK