Sliding Div a altura automática

Tengo un div que deslizo adentro y afuera. Para hacer esto, solo aumento la altura en 2px cada segundo hasta una altura preestablecida desde una altura de 0.

¿Hay alguna forma de determinar la altura del contenido del div ya que el contenido es de altura impredecible teniendo en cuenta que las propiedades iniciales del div son display: none y height: 0?

Gracias.

El truco es mostrarlo temporalmente, medir la altura y luego ocultarla de nuevo. Y si usa visibility: hidden y position: absolute, no cambiará el diseño de la página mientras lo hace.

function getElementHeight(el) { var styles = { visibility: el.style.visibility, height: el.style.height, position: el.style.position, display: el.style.display }; el.style.visibility = "hidden"; el.style.height = "auto"; el.style.position = "absolute"; el.style.display = "block"; var height = el.offsetHeight; el.style.display = styles.display; el.style.position = styles.position; el.style.height = styles.height; el.style.visibility = styles.visibility; return height; } 

Si desea obtener la altura del estilo, puede agregar estas dos líneas después de var height = el.offsetHeight; :

 el.style.height = height + "px"; height += (height - el.offsetHeight);