2009-09-01 3 views
0

J'ai un groupe DIV tags dans une page HTML dont l'emplacement est contrôlé via plusieurs divs parents/grands-parents. L'emplacement de ces parents et grands-parents est contrôlé via des classes CSS. J'ai besoin de récupérer l'attribut supérieur de la DIV donnée. Où est-ce dans le DOM ou comment le calculer en utilisant Javascript? Clarification: J'ai besoin de la valeur de la coordonnée du sommet de l'objet DIV en termes absolus (par rapport à la fenêtre).Comment obtenir l'attribut top (comme dans locale) d'un élément DIV en utilisant Javascript?

+0

Dup: http://stackoverflow.com/questions/610188/detection-the-position-of-a-div –

+0

Oui ... C'est un doublon. J'ai voté pour fermer aussi. Je ne l'ai pas simplement supprimé car quelqu'un d'autre pourrait ne pas trouver l'autre question en cherchant (c'est-à-dire le même problème que j'avais). – dacracot

Répondre

0

Cela vous donne haut et à gauche:

myDiv.offsetY 
myDiv.offsetX 
+0

Non, ce n'est pas le cas. Voulez-vous dire 'offsetLeft' /' offsetRight'? –

+0

Les deux offsetY et offsetX sont indéfinis. – dacracot

+0

@crescentfresh ... offsetLeft est une valeur relative, non absolue (dont j'ai besoin) et offsetRight est indéfini. – dacracot

1

Depuis offsetTop et offsetLeft vous donnent des valeurs de position relative, vous pouvez obtenir les valeurs absolues en traversant l'arbre de offsetParent s, l'agrégation des offsetTop et offsetLeft les valeurs de chaque élément parent:

function findPos(obj) { 
    var curleft = curtop = 0; 
    if (obj.offsetParent) { 
    do { 
     curleft += obj.offsetLeft; 
     curtop += obj.offsetTop; 
    } while (obj = obj.offsetParent); 
    return [curleft,curtop]; 
    } 
} 

des informations plus détaillées: JavaScript Find position

+0

Je l'ai trouvé aussi. C'est presque ce dont j'ai besoin. Y a-t-il un moyen de prendre en compte le défilement? Pas seulement le défilement de la fenêtre (window.scrollY) mais aussi les DIVs avec scroll: les attributs automatiques? – dacracot

Questions connexes