Это может быть немного глупый вопрос, но я только начал делать красивые вещи в jQuery, и я внезапно задумался, как решить проблему, которую я даже не удосужился рассмотреть без помощи фреймворков.
Предположим, у нас есть два div
элемента:
<body>
<div id="lorem1" style="display:block; height:400px;">
Lorem ipsum...
</div>
<div id="lorem2" style="display:hidden;">
dolor sit amet...
</div>
</body>
Теперь, если бы мы хотели использовать эффект аккордеона, чтобы уменьшить первое div
из существования и вырастить второе в существование, я бы предположил, что у нас будет следующая простая логика:
- Итеративно уменьшайте высоту
#lorem1
, пока она не достигнет 0
- Установите
#lorem1
в display:none;
- Установите
#lorem2
на display:block; height:0;
- Итеративно увеличивать высоту
#lorem2
Тогда проблема ... Увеличьте высоту lorem2 ... до каких пор? Как мы узнаем конечную высоту нашего элемента? Мы явно не можем выбрать статическое значение, например «увеличивать его, пока оно не достигнет 400px», потому что содержимое lorem2
может иметь высоту более 400 пикселей. В противном случае, если оно меньше 400 пикселей, цвета фона / изображения или другие элементы на странице могут выглядеть неправильно.
Так как же нам выяснить, когда остановить наш аккордеон?