Avatar billede manon Nybegynder
29. juli 2003 - 04:04 Der er 5 kommentarer og
1 løsning

Hvordan placeres en dhtml menu i et <div>

Hej E

Jeg er ved at prøve noget nyt og for første gang står jeg med et underligt problem.

Jeg har et <div style="overflow:auto; height:225px;"> lag med hele min tekst </div>

Inde i dette lag vil jeg gerne sætte en meget, meget simpel foldeud menu, dvs. vha. mouseover/klik, så åbnes en menu med 3-4 klikbare valgmuligheder.

Jeg har fundet en del menuer derude og bruger bla. også coolmenus, men de kan åbenbart ikke forenes med mit div som jeg allerede har.

Så hvordan gør man det på en smart måde? Javascript menu eller javamenu? DHTML kan jo også komme på tale, men som sagt ligger der allerede et lag på siden og den kan jeg ikke komme udenom.

Helst vil jeg jo bruge denne:

<SCRIPT language=JavaScript src="/menu_array.js" type=text/javascript></SCRIPT>
<SCRIPT language=JavaScript src="/mmenu.js" type=text/javascript></SCRIPT>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>


Og med <script language=JavaScript>PlaceMenu("Mainmenu")</script>

Men den vil ikke placere sig inde i laget.

Help please *s*
vh m.
Avatar billede tangveje Nybegynder
29. juli 2003 - 04:17 #1
Du kan sagtens bruge coolmenus til det du søger... Det er rigtigt, du kan ikke placere menuen i et div, eller andet element, men du kan simulere det. Der er faktisk et par eksempler med når du downloader coolmenus... Her er et af dem

http://www.dhtmlcentral.com/projects/coolmenus/examples/table_placement1.html

Og så synes jeg lige vi skal have styr på teknologierne her :) Java er et programmerings sprog, som misbruges på det groveste på nettet (ikke så slemt som det har været)... Java bør ikke bruges til at løse opgaver som denne...

JavaScript er... Well... JavaScript :) DHTML er en betegnelse for resultatet af at blande HTML, CSS og JavaScript, kort fortalt, DHTML er ikke et sprog i sig selv.
Avatar billede manon Nybegynder
29. juli 2003 - 04:23 #2
tangveje >>
ja, jeg har ingen problemer med at placere menuen ellers - bortset fra at jeg ikke kan placere den i et <div style="overflow:auto; height:225px;"> lag med hele min tekst </div>

Nu kan det være jeg ikke kan se skoven for bare træer, men jeg kan ikke se løsningen vha. dit link.
Avatar billede roenving Novice
29. juli 2003 - 13:28 #3
Som Thomas Brattli skriver i den side tangveje henviser til, kan man ikke lægge dem sådan de fysisk er inde i et element og altså heller ikke opnå at elementet f.eks. udvider sig med menuen (arh ... man kunne vel godt med en ihvertfald for nu fuldstændig uoverskuelig kode !-)

Men hvis du aftaster et elementsplacering kan vi jo placere overdiv'en i forhold til denne og så opnå stort set det samme ...

olebole har lavet en genial lille funktion til at finde element-placeringer:

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

som ovenikøbet kommer ned på en linje hvis man bruger den dedikeret til at placere eet element:

1. Giv den div, du vil placere menuen 'inde i' et id:
<div id="content" style="overflow:auto; height:225px;"> lag med hele min tekst </div>

2. Placer følgende i onload og onresize i
<body ... onresize="posDiv();" onload="posDiv();">

3. Indsæt følgende script (jeg plejer at gøre det i <head>):
<script type="text/javascript" language="javascript">
function posDiv(){
elm = document.getElementById('content');//navnet på div'en som styrer menuens placering
for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
menuDiv = document.getElementById('overDiv');//selve menuens div ...
menuDiv.style.top = zy + 20;
menuDiv.style.left = zx + 45;
}
</script>

-- denne konstruktion taber _også_ NS4-brugere (Brattlis argument på ovenstående link !-), men det er jo et valg om man understøtte de mange eller de specielle -- selv gør jeg mig ikke mere anstrengelser for at understøtte NS4 eller IE3(4) ...
Avatar billede manon Nybegynder
29. august 2003 - 12:21 #4
roenving >>
Besvar gerne så vi kan lukke spm.
Avatar billede roenving Novice
05. september 2003 - 06:43 #5
Oki '-)
Avatar billede roenving Novice
06. september 2003 - 03:05 #6
-- og takker for point-strømmen !-)
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