Avatar billede lequet Nybegynder
11. juni 2002 - 02:59 Der er 7 kommentarer og
1 løsning

Finde position af <div>

Godaften :)

Sidder med et lille problem, som jeg tænkte i kunne hjælpe mig med.

Jeg har et div :

<div id="menu" class="menu">Menu</div>

Det skal jeg så via JavaScript finde placeringen af, altså x og y koordinaterne for det div.

Jeg prøvede med

divX = document.getElementById("menu").style.left ;
divY = document.getElementById("menu").style.top ;

Men det virker kun hvis jeg sætter en style="left : 100px ; top : 10px ;" direkte på mit div tag, ikke hvis jeg har det i min class altså

.menu {
  left : 100px ;
  top : 10px ;
}

Dette er lidt et problem. Desuden er den metode ikke særligt præcis.

Nogen der ved hvordan jeg helt korrekt finder positionen af mit div tag?
Avatar billede lequet Nybegynder
11. juni 2002 - 05:20 #1
Jeg fandt en løsning. Til dem som er nysgerrige og gerne vil vide hvad løsningen var :

divX = document.getElementById("menu").offsetLeft ;
divY = document.getElementById("menu").offsetTop ;

:)
Avatar billede dk_akj Nybegynder
11. juni 2002 - 07:13 #2
Det har da været noget af et natteproject !!

//akj
Avatar billede lequet Nybegynder
11. juni 2002 - 07:56 #3
dk_akj > HeHe :) Tja, det er nok en rimelig antagelse :)
Avatar billede dk_akj Nybegynder
11. juni 2002 - 07:58 #4
Hva faen og du er vågen endnu ??
Avatar billede lequet Nybegynder
11. juni 2002 - 08:10 #5
Ja da :) Jeg venter bare på at banken åbner, så jeg kan finde min vej der til, og derefter må jeg vel finde en masse kaffe frem :)
Avatar billede jakoba Nybegynder
11. juni 2002 - 11:26 #6
Pas dog på med at stole formeget på det svar du fandt ovenfor. offsetLeft og offsetTop fortæller hvor ellementet ligger indeni den container der indeholder det. eg, hvis din <div er relativt positionereret indeni en tabelcelle er det offset til tabelcellens øverste venstre hjørne du får.
tablecellen har så et offset ud til den <tr den ligger i, osv osv.

function getXYcoord ( htmlElemObj ) {  // ikke til NS4, men ok i IE4+ og NS6+
    var elm = htmlElemObj;
    var rd = { x:0 ,y:0 };
    do { rd.x += parseInt( elm.offsetLeft );
        rd.y += parseInt( elm.offsetTop );
        elm = elm.offsetParent;
    } while ( elm );
    return rd
}; //end getXYcoord ( HTML element object ) -> object{x,y}

mvh JakobA
Avatar billede lequet Nybegynder
11. juni 2002 - 11:44 #7
JakobA > Som det er nu virker det perfekt, men skal da huske din metode hvis jeg løber ind i problemer. Takker mange gange :)
Avatar billede benjax Nybegynder
03. oktober 2002 - 15:59 #8
Jeg havde netop brug for JakobA's løsning - den virker perfekt, så snart jeg altså fandt ud af, at det er et objekt, function returner, hvor man så spørger på x/y, altså fx:

var top = getXYcoord(getElementById("myField")).y;

mvh/benjax
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester