#jquery #html #css #dynamic #jquery-animate
#jquery #HTML #css #динамический #jquery-анимировать
Вопрос:
У меня есть видимый / скрытый скрытый div с возможностью открытия / закрытия слайдов.
Этот эффект достигается за счет animate() изменения высоты div.
Проблема в том, что div разделяется несколькими содержимым (разными текстовыми абзацами), высота которых заранее неизвестна.
Итак, как мне узнать, какой будет высота div, когда я добавлю такой контент, чтобы я мог анимировать (‘height’:’-px’), чтобы открыть div с помощью слайда?
Ответ №1:
Просто используйте slideDown()
, и вам не нужно будет вычислять высоту.
Единственный другой способ, который вы могли бы сделать (но я не знаю ваших точных обстоятельств) clone()
, — это добавить элемент и добавить его в документ, установить для него height
значение auto
, а затем получить height()
его.
var cloned = $('#some-element').clone();
cloned.css({ position: 'absolute', left: '-9999px', height: 'auto' });
var height = cloned.height();
cloned.remove();
Ответ №2:
Один трюк, который работал у меня раньше, — это установить непрозрачность элемента на что-то действительно низкое, например 0.01
. Это выполняет a show
для элемента, но если ваша непрозрачность достаточно низкая, она будет едва заметна на странице.
Комментарии:
1. У этого есть проблемы, например, это заполнит пространство, необходимое для отображения элемента. Вы также можете использовать
visibility: hidden
.