Есть ли способ в jQuery, где я могу скрыть элемент, но не изменить DOM, когда он скрыт? Я скрываю определенный элемент, но когда он скрыт, элементы под ним перемещаются вверх. Я не хочу, чтобы это случилось. Я хочу, чтобы пространство оставалось таким же, но элемент должен быть показан / скрыт по желанию.
Я могу это сделать?
Ответы:
Вместо этого
hide()
используйте:hide()
устанавливаетdisplay
стильnone
, который полностью удаляет элемент из потока документов и заставляет его не занимать место.visibility:hidden
держит пространство как есть.источник
css('visibility','visible')
css('visibility', '')
Попробуйте установить
visibility
дляhidden
:источник
display: none;
извлечет его из потока контента, и вы увидите, как ваш другой контент переместится в пустое пространство, оставленное позади. (display: block;
возвращает его обратно в поток, выталкивая все с пути.)visibility: hidden;
будет держать его в потоке контента, занимая место, но просто сделав его невидимым. (visibility: visible;
покажет это снова.)Вы захотите использовать,
visibility
если хотите, чтобы ваш поток контента оставался неизменным.источник
в другом ответе отмечается, что jQuery
fadeTo
не устанавливаетсяdisplay:none
по завершении, поэтому может также предоставить решение здесь, а не использовать,fadeOut
например:jQuery, скрыть div, не мешая остальной части страницы
источник
Я раньше использовал,
opacity: 0
прежде чем увиделvisibility: hidden
трюк.Но во многих случаях
opacity: 0
это проблематично, поскольку позволяет вам взаимодействовать с элементом , даже если вы его не видите! (Как указывает DeadPassive .)Обычно это не то, что вы хотите. Но, может быть, иногда вы могли бы?
источник