11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Je suis assez novice en ECMAscript/Javascript, et j'avoue qu'après avoir cherché (dans mon coin, sur le forum, ou sur Google), je n'arrive pas à trouver la réponse à mon problème.

Le problème que voici, donc : J'aimerais pouvoir trouver la hauteur de tel ou tel élément pour générer un script en fonction de cette hauteur.
Donc j'ai bien essayé ce code, mais il ne me renvoit qu'une valeur nulle pour h :
var h = document.getElementById(element).style.height;

element est une variable de la fonction dans laquelle se trouve cette ligne.

Si quelqu'un peut m'aider... :]
Ou juste m'annoncer la triste nouvelle comme quoi cela est impossible... Smiley confus
Modifié par an.archi (31 Oct 2005 - 18:56)
Bonsoir,
L'élément dont tu recherches la hauteur a-t-il un height de spécifié ?
Sinon as-tu éssayé ceci:
	var h = document.getElementById(el).offsetHeight;

Modifié par comar91 (31 Oct 2005 - 20:37)
an.archi a écrit :
var h = document.getElementById(element).style.height;

style ne contient que les propriétés CSS en ligne (dans l'attribut style="").

Oriente-toi par exemple vers :
var h = document.getElementById(element).clientHeight;
comar91 > hélas non, c'est une hauteur variable, sinon je n'aurais pas tous ces problèmes. Smiley smile

Quoiqu'il en soit, merci à vous deux. Rien qu'avec la "bonne" syntaxe, j'avance déjà un peu (notamment avec le Mozilla Development center que je ne connaissais pas).
Le problème que j'ai maintenant, c'est que ces propriétés (offsetHeight et clientHeight), on n'obtient que la hauteur affichée, et pas toute la partie existante en dessous (par scrolling vertical).

Je vais continuer à fouiller, mais si vous avez une idée, elle est la bienvenue, toujours. Smiley smile
J'ai cru voir entre autre un sujet qui semblait proche du mien, mais qui causait de XMLHTTPRequest, et qui m'a un peu rebuté, je dois avouer.

Merci encore !
En fait, je m'amuse un peu, et j'essaie de faire ça : http://an.archi.free.fr/codeplay/sin-div/
Le chiffre moche en haut correspond à la hauteur retournée par document.getElementById(element).clientHeight.

C'est du brouillon pour l'instant, mais voilà, vous savez tout. :]
Modifié par an.archi (13 Dec 2005 - 12:55)
an.archi a écrit :
Le chiffre moche en haut correspond à la hauteur retournée par document.getElementById(element).clientHeight.

Tu affiches ce chiffre avant que le div "contenant" ne soit entièrement rempli donc je doute de la pertinence du résultat.

D'ailleurs, chez moi, au chargement 604 s'affiche et quand je regarde avec le DOM Inspector (donc une fois que tout est bien en place) "contenant" a 1156 comme valeur de clientHeight (valeur identique pour offsetHeight et scrollHeight).
Modifié par djfeat (31 Oct 2005 - 22:48)
djfeat > YES !
Merci. Voici la grande preuve que j'ai pas l'habitude de manipuler des propriétés dynamiquement. Smiley smile

Effectivement, mieux vaut appeler la fonction lors d'un onload sur le body, ça marche mieux.

Le seul hic qui reste, c'est que l'élément fait une certaine taille à l'origine, mais est forcément plus grand après l'application de la fonction, vu qu'on rétrécie la zone de texte.
Le résultat, c'est cette petite marge disgracieuse en bas de page...

Quelqu'un aurait une idée par hasard ?
Siouplé ?