Apakah ada cara di jQuery di mana saya bisa menyembunyikan elemen, tetapi tidak mengubah DOM saat disembunyikan? Saya menyembunyikan elemen tertentu tetapi ketika disembunyikan, elemen di bawahnya bergerak ke atas. Saya tidak ingin itu terjadi. Saya ingin ruang tetap sama, tetapi elemen ditampilkan / disembunyikan sesuka hati.
Bisakah saya melakukan ini?
Jawaban:
Alih-alih
hide()
, gunakan:hide()
mengaturdisplay
gayanone
, yang sepenuhnya menghapus elemen dari aliran dokumen dan menyebabkannya tidak memakan ruang.visibility:hidden
menjaga ruang seperti apa adanya.sumber
css('visibility','visible')
css('visibility', '')
Coba atur
visibility
kehidden
:sumber
display: none;
akan mengeluarkannya dari aliran konten sehingga Anda akan melihat konten Anda yang lain pindah ke ruang kosong yang tertinggal. (display: block;
Membawanya kembali ke aliran mendorong semuanya keluar dari jalan.)visibility: hidden;
akan menyimpannya dalam aliran konten yang menghabiskan ruang tetapi membuatnya tidak terlihat. (visibility: visible;
akan mengungkapkannya lagi.)Anda akan ingin menggunakan
visibility
jika Anda ingin aliran konten Anda tetap tidak berubah.sumber
di jawaban lain dicatat bahwa jQuery's
fadeTo
tidak diaturdisplay:none
pada penyelesaian jadi mungkin juga memberikan solusi di sini, daripada menggunakanfadeOut
misalnya:jQuery, sembunyikan div tanpa mengganggu sisa halaman
sumber
Saya sebelumnya menggunakan
opacity: 0
sebelum saya melihatvisibility: hidden
triknya.Tetapi dalam banyak kasus
opacity: 0
bermasalah, karena memungkinkan Anda berinteraksi dengan elemen , meskipun Anda tidak dapat melihatnya! (Seperti yang ditunjukkan oleh DeadPassive .)Biasanya bukan itu yang Anda inginkan. Tetapi mungkin sesekali Anda mungkin?
sumber