Как правильно сделать нарастающий блок не зная высоты?

Есть блок, он свернут, тоесть высота 0
По клику нужно чтобы он начал расти и вырос до максимума (относительно контента внутра)
его высоту я не знаю.

Вот пример, только тут высоту я знаю, нужно с неопределенной высотой:
https://jsfiddle.net/nt3Lvkjx/1/

Не подскажете как это реализовать?

Использую только нативный js
  • Вопрос задан
  • 136 просмотров
Решения вопроса 3
trushka
@trushka
Ответ написан
Комментировать
Если планируется, что блок должен растягиваться внутренним контентом - то можно использовать свойство max-height.
// устанавливаем значение больше, чем максимальное возможное значение
max-height: 500px;
transition max-height 1s;
Ответ написан
Комментировать
Deonisius
@Deonisius
Родился в 11110110111 году, 11000 января.
Такой вариант
var div = document.querySelector('div');

document.querySelector('button').addEventListener('click', function() {
  var cl = div.cloneNode(true);  
  cl.style.cssText = 'height: auto; position: absolute; left: -100500px;';
  document.body.appendChild(cl);
  div.style.height = cl.offsetHeight + 'px';
  cl.parentNode.removeChild(cl);
  
}, false);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Сперва получаете высоту контента внутри в пикселах (при каждом клике), а далее, с известной высотой, раздвигаете блок. Самое простое, что в голову пришло
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы