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