Necesito medir el offsetHeight de un div que está dentro de un elemento oculto.Necesito encontrar la altura del div oculto en la página (configurado para mostrar: ninguno)
<div id="parent" style="display: none;">
<div id="child">Lorem Ipsum dolor sit amet.</div>
</div>
El padre div debe ponerse en "display:none
". No tengo control sobre eso. Me doy cuenta de que offsetHeight del div infantil va a ser 0. Necesito encontrar una solución.
Algo con lo que he jugado es cuando la página se carga, copio los nińos de los padres, los inserto en un div en la página que está configurada como "visiblity:hidden
". Luego mido la altura de esos elementos y elimino los nodos cuando termine.
¿Alguna otra idea?
Actualización: Lo que terminé tener que hacer era esto:
Usando YUI 2, al cargar la página, me encontré con todos los elementos de ese nombre de clase dado que se ajusta bien a la pantalla: ninguno, o cuyos alto y ancho era 0 (esa es una manera de medir si un elemento existe, o uno de los padres está configurado para mostrar: ninguno). Luego configuro ese elemento para mostrar: bloquear. Luego verifiqué que era el padre de la misma cosa y se lo mostré a los padres hasta que encuentre un padre visible. Una vez que la pantalla es más alta: ningún antecesor está configurado para mostrar: bloquear, puedo medir mi elemento.
Una vez que se miden todos los elementos reinicio todos los elementos para mostrar: ninguno.
He considerado esto ... Esto parece que puede ser muy intensivo en recursos ... ¿Qué piensas? –
Publicación editada para responder a sus inquietudes (y algunas ideas sobre un enfoque alternativo). – kangax
No pude ver ningún parpadeo mientras mostraba minuciosamente el elemento. Tomé el enfoque de mostrarlo solo mientras obtenía la altura, luego la ocultaba. Eso es también lo que hace slideToggle() de jQuery. Funciona bien +1 –