11548 sujets

JavaScript, DOM et API Web HTML5

(Re)Bonjour.

Je cherchais le meilleur moyen d'avoir la taille réel d'un élément. Je suis tombé sur la fonction getStyle de quircksmode mais comme il est précisé, et comme j'ai pu le constater, IE renvoie souvent "auto".
Je me suis donc penché sur offsetXxxxx qui lui semble parfaitement fonctionner sous IE 7, Firefox et Konqueror 3.5.7 donc j'aimerais savoir s'il y a des inconvénient à utiliser offsetXxxxx à part le fait qu'il n'est pas standard ?

Pour la deuxième fois de la journée je propose ensuite d'ajouter la meilleur fonction dans le topic des fonctions utiles. Smiley smile
Il y a juste une différence notable entre les offsetLeft/Top de IE et ceux de firefox.

Firefox donne la position absolue.
IE jusqu'à la 6 en tout cas donne la position en fonction de son parent. Pour obtenir la position absolue, il faut parcourir récursivement les parents. IL y a pour cela une propriété supplémentaire, offsetParent.

IE7, aucune idée
Opera, pas mieux
Safari, non plus
donc il y aurait des tests à faire.
Soit c'est l'inverse, soit tu trompes, soit le wiki Mozilla se trompe :
a écrit :
offsetTop renvoie la position de l'élément courant par rapport au haut du nœud offsetParent.
Source : Mozilla.
... ou alors c'est mozilla qui s'est plié aux volontés d'IE.
Mais par contre je suis presque sûr que dans les anciennes versions... enfin bref ce n'est plus d'actualité.
Désolé de vous avoir embrouillé inutilement, la doc a toujours raison.
CNeo a écrit :
(Re)Bonjour.

Je cherchais le meilleur moyen d'avoir la taille réel d'un élément. Je suis tombé sur la fonction getStyle de quircksmode mais comme il est précisé, et comme j'ai pu le constater, IE renvoie souvent "auto".
Je me suis donc penché sur offsetXxxxx qui lui semble parfaitement fonctionner sous IE 7, Firefox et Konqueror 3.5.7 donc j'aimerais savoir s'il y a des inconvénient à utiliser offsetXxxxx à part le fait qu'il n'est pas standard ?

Pour la deuxième fois de la journée je propose ensuite d'ajouter la meilleur fonction dans le topic des fonctions utiles. Smiley smile


Tu as une différence liée au modèle box, mais ça fonctionne partout.
a écrit :

Tu as une différence liée au modèle box, mais ça fonctionne partout.

IL me semblais bien qu'il y avait une différence.
Et j'oubliais de préciser, c'est un getter, et non pas un setter. Ce qui signifie qu'on ne peux pas lui donner de valeur.
Shinuza a écrit :
Et j'oubliais de préciser, c'est un getter, et non pas un setter. Ce qui signifie qu'on ne peux pas lui donner de valeur.
Ce qui est logique car par exemple offsetHeight contient le contenu + padding + bordure donc si on voulait lui donner une valeur le script ne saurait pas où placer les pixels ...
Shinuza a écrit :
Tu as une différence liée au modèle box, mais ça fonctionne partout.
C'est-à-dire ?