October 25, 2024
Chicago 12, Melborne City, USA
HTML

How to Animate Expanding Content Height without a Fixed Value in CSS?


I have a button that toggles the height of an element between 0 and 200px. However, I want the height to expand fully to reveal all the content, rather than setting a fixed height of 200px. Using height: max-content displays the full content, but it doesn’t animate.

function toggle() {
  var element = document.getElementsByClassName("content")[0];

  element.classList.toggle("toggle");
}
.content {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease-in-out;
}

.content.toggle {
  height: 200px;
  overflow: scroll;
}
<button onclick="toggle()">Toggle</button>
<div class="content toggle">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium eu arcu non pulvinar. Pellentesque mattis elit posuere leo tristique volutpat. Aenean velit magna, lacinia ac ipsum at, commodo ultricies lacus. Nullam pulvinar ipsum tellus, sed ullamcorper
    justo rhoncus sed. Maecenas facilisis nibh at ante vehicula sodales. Proin pharetra vulputate risus, eget fringilla nulla. Nullam finibus commodo velit quis dignissim.
  </p>
  <p>
    Aenean in ultricies ex. Donec sodales eleifend quam vel placerat. Vestibulum quis tristique felis, in rhoncus ex. Proin tortor quam, viverra ac justo eget, consequat sollicitudin turpis. Aliquam in metus non leo vulputate dapibus. Pellentesque convallis
    scelerisque justo, sit amet rutrum mauris. Quisque pulvinar tellus eget orci blandit viverra. Mauris pharetra, erat non tempor convallis, nulla odio pulvinar elit, a convallis ligula lacus eu augue. Nullam id eros eget mauris semper condimentum. Suspendisse
    commodo mauris orci. Praesent pharetra, massa vestibulum semper gravida, mi sem placerat massa, nec rutrum erat lacus a neque. Etiam ac convallis diam, sit amet tempus lorem. Ut vestibulum lacus fringilla ante hendrerit, a pulvinar magna rhoncus.
    Nulla vel condimentum lacus.
  </p>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae feugiat libero. Sed sed augue sit amet tellus rhoncus volutpat. Sed quis est eu diam mollis tempus. In tristique sem enim, faucibus vestibulum neque consequat sed. Etiam id lacus eu sem
    porta eleifend. Nam iaculis nisl nec ex mattis, a dictum mi auctor. Proin aliquet efficitur sapien, eget faucibus eros vulputate nec. Mauris at tristique mi. Duis pellentesque sed lectus non lacinia. Vivamus tristique rutrum ipsum, in pellentesque
    velit iaculis id. Ut aliquet mauris ut libero gravida, quis mollis nisl pretium. Nam in nisl mauris. Nam rutrum eros ut leo aliquam condimentum. Suspendisse dapibus sed tortor quis accumsan. Maecenas ut diam vel tortor sollicitudin scelerisque sed
    sagittis neque. Nulla sit amet ultricies elit, at tempor ligula.
  </p>
</div>

<div>This is additional content.</div>

Is there a way to animate the height expansion without using a fixed height value in CSS?



You need to sign in to view this answers

Leave feedback about this

  • Quality
  • Price
  • Service

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video