Avatar billede jakobdamjensen Nybegynder
26. oktober 2005 - 21:21 Der er 6 kommentarer

Dropdown menu, et mindre problem!

Jeg har lavet en dropdown menu i javascript, men jeg står med et lille problem. Jeg ved ikke hvordan jeg får den til automatisk at finde ud af hvor på skærmen den skal placere sig henne.

Scriptet ved hvor musen er placeret hele tiden, men jeg skal finde en måde at finde ud af hvor den er henne når jeg trykker. Både i forhold til hele vinduet, men også i forhold til den tabelcelle som teksten står i.

Er der en smart måde at gøre dette på..

eksempel kan ses på www.inetsolutions.dk/jakobs/menu/menu.php

Lige nu er den helt oppe i hjørnet, fordi at jeg derved har styr på hvor feltet skal poppe frem henne, men den holder jo ikke rigtigt når det virkelig gælder!
Avatar billede or.han Nybegynder
26. oktober 2005 - 22:54 #1
Øh forstår ikke hvad du mener.

"
Scriptet ved hvor musen er placeret hele tiden, men jeg skal finde en måde at finde ud af hvor den er henne når jeg trykker. Både i forhold til hele vinduet, men også i forhold til den tabelcelle som teksten står i.
"

Er der ikke et par stavefejl der? De gør det lidt svært at forstå og dermed sværere at hjælpe dig.
Avatar billede fennec Nybegynder
27. oktober 2005 - 09:05 #2
Musens placering er da ligemeget i forbindelse med menuer...

Du skal bare tjekke positionen for det element der bliver trykket på. Det kan gøres på denne måde:

function findPos(funkMenuID){
  x=0;
  y=0;
  var el, temp
    el = document.getElementById(funkMenuID);
    try{
    if(el.offsetParent){
      temp = el
      while(temp.offsetParent){
        temp=temp.offsetParent;
        x+=temp.offsetLeft
        y+=temp.offsetTop;
      }
    }
    x+=el.offsetLeft
    y+=el.offsetTop
    }catch(e){}

  return [x,y]
}
Avatar billede roenving Novice
27. oktober 2005 - 16:30 #3
-- og jumper lavede engang en _meget_ kort udgave af det script fennec viser:

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}
}

Kaldes f.eks. med

var pos = getPos(document.getElementById('elm'));

-- så indeholder pos.x og pos.y positionen !-)
Avatar billede jakobdamjensen Nybegynder
27. oktober 2005 - 19:49 #4
mange tak... fennec, lav et svar.. så får du point!
Avatar billede fennec Nybegynder
28. oktober 2005 - 08:21 #5
Jeg er med på en deler med roenving, for det var da en dejlig kort funktion han havde fundet der.

.o) <-- One Eyed Jack
Avatar billede roenving Novice
28. oktober 2005 - 08:28 #6
Nej tak, men jeg håber, du har registreret den som en brugbar snippet !-)
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