
script : getPos v1.0
langage : javascript
catégorie : fragment
usage : Connaître la position d'un élément HTML dans la page.
tags : crossbrowser snippet - prise de mesures
Pour améliorer une interface grâce à du javascript, il est souvent nécessaire de relever la position d'un élément dans la page. Ce fragment de code est là pour ça.
A l'intérieur du carré jaune ci-dessous, vous pourrez lire, pour chacun de ses côté, la distance qui le sépare du bord du document.
Cliquez ici pour déplacer le carré.
Les mesures sont données en pixels.
Les mesures pour le dessus et le dessous du carré sont données par rapport au bord supérieur de la page.
Les mesures pour les côtés gauche et droit sont relative au bord gauche de la page.
Vous pouvez copier le code ci-dessus, ou télécharger le fichier getPos.js.
var getPos = function (elem) { var pos={'r':0,'l':0,'t':0,'b':0}; var tmp=elem; do { pos.l += tmp.offsetLeft; tmp = tmp.offsetParent; } while( tmp !== null ); pos.r = pos.l + elem.offsetWidth; tmp=elem; do { pos.t += tmp.offsetTop; tmp = tmp.offsetParent; } while( tmp !== null ); pos.b = pos.t + elem.offsetHeight; return pos; };
Le paramètre elem doit désigner un élément html.
La fonction retourne un tableau associatif, avec les clés suivantes :
t : la mesure pour le côté supérieur de l'élément
b : la mesure pour le côté inférieur de l'élément
l : la mesure pour le côté gauche de l'élément
r : la mesure pour le côté droit de l'élément
Ainsi, nous aurons par exemple :
var mon_elem = document.getElementById('machin'); var cote_droit = getPos(mon_elem).r;
parentNode) et son parent offset (offsetParent).offsetParent en offsetParent (et pas de parentNode en parentNode comme tu sembles croire), afin de toujours donner une position relative au coin supérieur-gauche de la page.