Avatar billede klasker Nybegynder
12. december 2002 - 17:50 Der er 8 kommentarer

Drop-down menu:

Davs.

Jeg er i gang med at lave en simpel dropdown menu, som er følgende:

<script>
function openmenu(id) {
  // load menuen ind i obj
  obj = document.getElementById(id);
  // Gør menuen synlig
  obj.style.display = "block";
  // Flyt menuen
  obj.style.left = ??? // Samme længde som den link der får den ned.
}
</script>

Hvordan finder jeg frem til hvor langt inde på siden den link der kalder den sidder?

Jeg kan selvfølgelig lave det som en konstant men så bliver min kode så fandens udfleksibel.
Avatar billede klasker Nybegynder
12. december 2002 - 17:54 #1
Måske fik jeg ikke forklaret det helt godt nok.
Under menuen er en <div>
Den link der får den ned ser følgende ud:
<a href="#" onMouseover="openmenu('Submenu1')">Menu1</a>

Jeg har prøvet at give funktionen en ekstra parameter:
function openmenu(id, caller) {
...
obj.style.left = caller.style.left
}
<a href="#" onMouseover="openmenu('Submenu1, this')">Menu1</a>

Men der virker heller ikke.
Avatar billede cdc Novice
12. december 2002 - 18:20 #2
set den i en css, og set en class. i din layer
.Submenu1{
    position: absolute;
    top: 4px;
    left: 11px;
}
Avatar billede cdc Novice
12. december 2002 - 18:22 #3
ikke i din layer men i din div:
<div id="caller" class="submenu1">
Avatar billede klasker Nybegynder
12. december 2002 - 18:28 #4
Du har vist misforstået mit spørgsmål /cdc.
Jeg har allerede en .css fil men det er vel ligemeget ikke?
Avatar billede cdc Novice
12. december 2002 - 18:42 #5
var det ikke placeringen du var ude efter, OK! :o)
Avatar billede klasker Nybegynder
13. december 2002 - 11:24 #6
Jeg vil finde ud af hvor på langt inde på siden en bestemt link befinder sig.
Fx:
Menu1  Menu2

Menu2 starter på tegn #8. Hvis det var en link med en ID, hvordan finder jeg så frem til det ud fra IDen?
Avatar billede Slettet bruger
13. december 2002 - 15:02 #7
Her er der en rigtig god funktion til at finde et objekt position:
http://www.xs4all.nl/~ppk/js/findpos.html
Det bruger du så i dit script på denne måde:

function openmenu(id, caller) {
  // load menuen ind i obj
  obj = document.getElementById(id);
  // Gør menuen synlig
  obj.style.display = "block";
  // Flyt menuen
  obj.style.left = findPosX(caller); // Samme længde som den link der får den ned.
}

Kaldes med:

<a href="#" onMouseover="openmenu('Submenu1', this); return false;">Menu1</a>
Avatar billede Slettet bruger
13. december 2002 - 15:04 #8
P.S. Husk at give objektet, der skal flyttes i forhold til linket, position: absolute!
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