Bonjour à tous,
Je vous explique mon problème. J'ai un div en absolute qui possède une hauteur fixe. Je désire connaitre la hauteur du contenu de ce div sachant que ce contenu est composé de div en absolute.
Voici un cas théorique :
Je n'ai pas mis les top: et Left: mais c'est éléments div_2 à 4 peuvent, dans ce cas théorique, être positionné n'importe ou même se chevaucher. Il est également possible que ces div aboslute contiennent également des div en absolute et dans ce cas, il faut évidemment la hauteur totale du tout.
J'utilise prototype et jusqu'à présent voici la solution trouvée:
J'essaye de trouver l'élement dans le div principal qui se trouve positioné le plus bas et en faisant la différence entre la position du div principal et l'element le plus bas et sa hauteur, j'ai la hauteur du contenu.
(en prototype)
J'utilise $('div_1')).descendants().each({}) comme ça j'ai tous les éléments. Mais évidemment comme pour chaque élement il faut obtenir la taille et la position... ça prend du temps.
Donc j'ai dans mon code (php) placé un div avec un id bien précis dans l'élément le plus bas de la boite dont je désire connaitre la taille. Avec hidden et bottom:0px; Et ensuite côté javascript je fait la différent entre la position sur la page de cet élément et le conteneur. C'est beaucoup plus performant évidemment mais hélas ce n'est pas générique. Donc ma fonction qui calcul la taille fait d'abord une première boucle sur le dernier élement injecté. Et si il n'y a pas de dernier élément fait la première boucle non performante.
Quand je parle de peu performant, dans mon test, la boite contient 400 éléments et ça prend 0.2 sec. Avec la boucle optimisée c'est évidemment quasi instantané.
Avez-vous une idée pour obtenir la taille du contenu de manière plus optimale ?
Merci,
Je vous explique mon problème. J'ai un div en absolute qui possède une hauteur fixe. Je désire connaitre la hauteur du contenu de ce div sachant que ce contenu est composé de div en absolute.
Voici un cas théorique :
<div id='div_1' style='position:absolute; height:150px; width:150px; overflow:absolute;'>
<div id='div_2' style='position:absolute; height:300px; width:150px;'></div>
<div id='div_3' style='position:absolute; height:300px; width:150px;'></div>
<div id='div_4' style='position:absolute; height:300px; width:150px;'></div>
</div>
Je n'ai pas mis les top: et Left: mais c'est éléments div_2 à 4 peuvent, dans ce cas théorique, être positionné n'importe ou même se chevaucher. Il est également possible que ces div aboslute contiennent également des div en absolute et dans ce cas, il faut évidemment la hauteur totale du tout.
J'utilise prototype et jusqu'à présent voici la solution trouvée:
J'essaye de trouver l'élement dans le div principal qui se trouve positioné le plus bas et en faisant la différence entre la position du div principal et l'element le plus bas et sa hauteur, j'ai la hauteur du contenu.
(en prototype)
J'utilise $('div_1')).descendants().each({}) comme ça j'ai tous les éléments. Mais évidemment comme pour chaque élement il faut obtenir la taille et la position... ça prend du temps.
Donc j'ai dans mon code (php) placé un div avec un id bien précis dans l'élément le plus bas de la boite dont je désire connaitre la taille. Avec hidden et bottom:0px; Et ensuite côté javascript je fait la différent entre la position sur la page de cet élément et le conteneur. C'est beaucoup plus performant évidemment mais hélas ce n'est pas générique. Donc ma fonction qui calcul la taille fait d'abord une première boucle sur le dernier élement injecté. Et si il n'y a pas de dernier élément fait la première boucle non performante.
Quand je parle de peu performant, dans mon test, la boite contient 400 éléments et ça prend 0.2 sec. Avec la boucle optimisée c'est évidemment quasi instantané.
Avez-vous une idée pour obtenir la taille du contenu de manière plus optimale ?
Merci,