Avatar billede javanewbie Nybegynder
20. april 2004 - 10:59 Der er 8 kommentarer og
2 løsninger

Finde koordinater på selectboxe

Jeg fik lavet en workaround på et problem omkring min dropdownmenu, som gik ned over nogle select-boxe, som så skinnede igennem menuen.
(Ref: http://www.eksperten.dk/spm/490947)

Det er godt nok.

Nu vil jeg gerne gå et skridt videre, og kun skjule selectboxen hvis menuen overlapper selectboxen, og derfor har jeg behov for at kende x- og y-koordinat for selectboxen, samt højde og bredde.

Kan jeg smage på de værdier i javascript? Hvad hedder de variable?
Avatar billede roenving Novice
20. april 2004 - 11:21 #1
jumpers getPos !-)

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

Så udvider du funktionen, så du for hver selectbox du finder undersøger om det element er indenfor rækkevidde af dropdown-boksen:

function hideShowSels(act,top,bottom,left,right){
  sels = document.getElementsByTagName('SELECT');
  for(i=0;sels.length>i;i++){
    pos = getPos(sels[i]);
    if(pos.x>left&&pos.x<right&&pos.y>top&&pos.y<bottom)sels[i].style.visibility = act;
  }
}
Avatar billede grunken Nybegynder
20. april 2004 - 12:21 #2
man kunne vel så med rette få de funktioner til at finde ud af det hele? :o)

<script type="text/javascript">
function getPos(elm) {
    for(var zx=zy=0,zw=elm.offsetWidth,zh=elm.offsetHeight;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy,w:zw,h:zh}
}

function hideShowSels(act,menuElm){
  var sels=document.getElementsByTagName('SELECT'),m=getPos(menuElm)
  for(i=0;sels.length>i;i++){
  p = getPos(sels[i]);
  if(p.x>m.x&&p.x<(m.x+m.w)&&p.y>m.y&&p.y<(m.y+m.h))sels[i].style.visibility = act;
  }
}
</script>
Avatar billede roenving Novice
20. april 2004 - 12:25 #3
Til biblioteket, straks !-)
Avatar billede grunken Nybegynder
20. april 2004 - 12:38 #4
og dog :o)

man burde mene at ovenstående ville skabe problemer når menuen colapser

Nok snarere sådan hvis det hele skal fungere nogenlunde efter hensigten :o)

<script type="text/javascript">
function getPos(elm) {
    for(var zx=zy=0,zw=elm.offsetWidth,zh=elm.offsetHeight;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy,w:zw,h:zh}
}

function hideShowSels(menuElm){
  var sels=document.getElementsByTagName('SELECT'),m=getPos(menuElm)
  for(i=0;sels.length>i;i++){
  p = getPos(sels[i]);
  if(p.x>m.x&&p.x<(m.x+m.w)&&p.y>m.y&&p.y<(m.y+m.h))sels[i].style.visibility="hidden";
  else sels[i].style.visibility="visible";
}
}
</script>

Men igen hvad forstår bønner sig på agurkesalat :o)
Avatar billede grunken Nybegynder
20. april 2004 - 12:38 #5
bønder *G*
Avatar billede javanewbie Nybegynder
20. april 2004 - 12:39 #6
Jeg takker. Smid svar begge to, og så vil jeg afsætte lidt flere point.
Avatar billede grunken Nybegynder
20. april 2004 - 12:46 #7
ikke flere points for min skyld :o)
Avatar billede roenving Novice
20. april 2004 - 12:49 #8
Bondesalat måske *g*

Velbekomme '-)
Avatar billede javanewbie Nybegynder
20. april 2004 - 12:51 #9
Jo jo... "nemme spørgsmål" er 15 point. Jeg opfatter en one- eller two-liner som et "nemt svar"... I har begge leveret mere end det, så det takseres til medium, og det er 30 pr. næse.
Avatar billede roenving Novice
20. april 2004 - 21:54 #10
-- tak for point ;~}
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging