Avatar billede gnyff Nybegynder
18. august 2003 - 23:27 Der er 7 kommentarer og
1 løsning

Aflæs position på span eller div

Hejsa Eksperter

Jeg sidder i et problem hvor jeg skal have aflæst position på et span jeg har lavet.

Hvordan aflæser jeg positionen, fra et div eller span?

jeg har prøvet med

function aflaes(test){

alert(test.style.top); og
alert(getElementByID(test).style.top);

men ingen af dem virker.
Avatar billede bearhugx Nybegynder
18. august 2003 - 23:30 #1
test.offsetX og test.offsetY , så vidt jeg husker
Avatar billede bearhugx Nybegynder
18. august 2003 - 23:32 #2
Hmm - tyv-stjålet fra EE

function getX(obj)
{
  return( obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+getX(obj.offsetParent) );
}

function getY(obj)
{
  return( obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+getY(obj.offsetParent) );
}


alert( getX( test ) );
Avatar billede bearhugx Nybegynder
18. august 2003 - 23:34 #3
noget du kan bruge ?
Avatar billede gnyff Nybegynder
18. august 2003 - 23:42 #4
Tja, jeg tror mere jeg er tilhænger af det første forslag, der kommer den bare med et alert om at den er undefined mens med det andet eksempel kommer den og siger at der mangler et object.
Avatar billede roenving Novice
19. august 2003 - 00:52 #5
En sød lille funktion, jeg har fået fra oleboles omfattende arkiver (se disse under http://www.eksperten.dk/bruger.phtml?navn=olebole !-)

function getPos(elm) {
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy}
}

-- har ganske tit brugt den til at positionere hvadsomhelst ...

-- og har _ikke_ fundet andet, som virkede ...

Den som bearhugx viser er præcis den samme i grundlæggende funktion !o]
Avatar billede gnyff Nybegynder
08. september 2003 - 00:38 #6
Hmmm, har prøvet med alt det i har givet mig, men mit problem er at jeg skal placere et div i forhold til et andet div. Er der nogen af jer der kan komme med et godt forslag til hvordan jeg gør der?
Avatar billede roenving Novice
08. september 2003 - 22:28 #7
function posDiv(newDiv,elm){
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    newDiv.style.top = zy + "px";//her kan du så f.eks. zy+50+"px"
    newDiv.style.left = zx + "px";
}


<body onload="posDiv(document.getElementById('divDerSkalFlyttes'),document.getElementById('divSomFlyttesEfter'))">
Avatar billede gnyff Nybegynder
26. maj 2004 - 14:35 #8
Jeg fandt en anden måde at gøre det på, men tak for hjælpen.
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