Avatar billede matthiasmarkussen Nybegynder
31. maj 2006 - 08:58 Der er 12 kommentarer og
1 løsning

Dropdown menu - ekstra "features"

Jeg har en menu der ser ud som flg. http://www.woodpekker.dk/js/menu.asp

Dertil har jeg et javascript, som jeg ikke selv har udarbejdet, da det ikke er min stærke side - og der har før været hjælp inde over herfra :-)

function toggle(target)
{
    var antallet_af_submenuer = 8; // loopen kører fra 1 og til 8 (begge tal inkl.)

    for(i=1; i <= antallet_af_submenuer; i++)
    {
        if (target != ("sub" + i)) document.getElementById("sub" + i).style.display = 'none';
    }

    var obj = document.getElementById(target);
    obj.style.display = ((obj.style.display == 'none') ? '' : 'none');

    return false;
}

Jeg ønsker nu menuen således at man udover at folde undermenuer ud ved klik på et valg - også åbner en side. Altså en form for informationsside om indholdet under den kategori man har valgt.

Er det muligt ?

Tak
Avatar billede mclemens Nybegynder
31. maj 2006 - 23:50 #1
Meget grimt eksempel ... skal nok laves lidt ved de styles :)
- men er det sådan noget du mente?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/JavaScript">
var curt="";
var curi="start";

function toggle(ctarget,cinfo){

if(ctarget!=0){
  if(curt!=""){
  tn=document.getElementById("sub"+curt);
  tn.style.display=(tn.style.display=="none")?"block":"none";
  }

  if((curt!=ctarget)&&(ctarget!=-1))document.getElementById("sub"+ctarget).style.display="block";
  curt=(ctarget!=-1)?ctarget:"";
}


if(cinfo!=0){
  if(curi!=""){
  tn=document.getElementById("info"+curi);
  tn.style.display=(tn.style.display=="none")?"block":"none";
  }

  document.getElementById("info"+cinfo).style.display="block";
  curi=cinfo;
}

}
</script>

<style type="text/css">

#outer{width:770px;margin:0px auto;}

a{color:#000;}

#menu{float:left;background:#00f;width:140px;}

#menu a{width:137px;display:block;border:1px solid #000;padding:3px;margin:5px;text-decoration:none;}

#produkter{padding:5px;float:right;width:590px;background:#f00;}

#produkter div{display:none;width:100%;margin:-5px 0px;}

#produkter div.showr,#menu div.showr{display:block;}

a.submenu{background:#ff0;}

</style></head>

<body><div id="outer">

<div id="menu">
<a href="#" onclick="toggle(-1,'start');return false;">Vis hoved info</a>
<a href="#" onclick="toggle(1,0);return false;" class="submenu">Vis undersider 1</a>

    <div id="sub1" style="display:none">
<a href="#" onclick="toggle(0,1);return false;">Produkt visning 1</a>
<a href="#" onclick="toggle(0,2);return false;">Produkt visning 2</a>
<a href="#" onclick="toggle(0,'tester');return false;">Produkt visning tester</a>
    </div>

<a href="#" onclick="toggle('jeps',0);return false;" class="submenu">Vis undersider jeps</a>

    <div id="subjeps" style="display:none">
<a href="#" onclick="toggle(0,'yes');return false;">Produkt visning yes</a>
<a href="#" onclick="toggle(0,'niks');return false;">Produkt visning niks</a>
<a href="#" onclick="toggle(0,3);return false;">Produkt visning 3</a>
    </div>

<a href="#" onclick="toggle(-1,4);return false;">Produkt visning 4</a>
<a href="#" onclick="toggle(-1,'sport');return false;">Sports produkter</a>
</div>


<div id="produkter" style="float:right">

<div id="infostart" class="showr">Start info</div>

<div id="info1">Produkter 1</div>
<div id="info2">Produkter 2</div>
<div id="infotester">Produkter tester</div>

<div id="infoyes">Produkter yes</div>
<div id="infoniks">Produkter niks</div>
<div id="info3">Produkter 3</div>

<div id="info4">Produkter 4</div>

<div id="infosport">Sports produkter</div>

</div>


</div></body></html>
Avatar billede matthiasmarkussen Nybegynder
01. juni 2006 - 09:23 #2
Ja næsten... Menuen skal være sådan opbygget, men hvordan laver man det således trykker på en class = submenu - at den både laver en undermenu OG åbner en ny side?

Altså sådan at menuen folder sig ud når man trykker, men samtidig åbner en side hvor der står "Her kan du læse bla bla" ...

Hvis du forstår mig?

Tak for svar - ellers fungerer ovenstående jo perfekt :-)
Avatar billede mclemens Nybegynder
01. juni 2006 - 09:56 #3
<a href="#" onclick="toggle('jeps',0);return false;" class="submenu">Vis undersider jeps</a>

rettes til f.eks.:

<a href="#" onclick="toggle('jeps','yes');return false;" class="submenu">Vis undersider jeps</a>

toggle(-1,0)
^ -1 lukker tidligere menu
^ 0 undlader at åbne info(+etellerandet)

toggle(0,1)
^ 0 undlader at åbne/lukke menu
^ 1 åbner info1
Avatar billede mclemens Nybegynder
01. juni 2006 - 09:57 #4
ups
Avatar billede matthiasmarkussen Nybegynder
01. juni 2006 - 10:18 #5
Det kan være det er et dumt spørgsmål, men har ændret det således :

<a href="#"  onclick="toggle(1,0);return false;" class="submenu">Vis undersider 1</a>

    <div id="sub1"  style="display:none">
<a href="side1.asp">Produkt visning 1</a>
<a href="blabla.asp">Produkt visning 2</a>

Så kan jeg pege menuen på de sider jeg har liggende. Men hvordan laver jeg det således at man ved klik åbner en tilsvarende side, og folder menu ud?
Avatar billede mclemens Nybegynder
01. juni 2006 - 11:19 #6
- Du behøver ikke have class på submenuer ... lidt offline her idag - så har nok først tid til aften ...

... men, kan du ikke sætte class="showr" (evt. class="submenu showr") på de div's inde i menuen, der skal være åben fra starten af - og så fixe den ekstra class via. dit asp script ...
Avatar billede matthiasmarkussen Nybegynder
01. juni 2006 - 11:52 #7
Tror jeg fik det til at virke nu - så er det kun udseende der skal nørdes lidt med:-P

Takker.. Points er afgivet
Avatar billede matthiasmarkussen Nybegynder
01. juni 2006 - 11:54 #8
:-)
Avatar billede mclemens Nybegynder
01. juni 2006 - 12:11 #9
- det var så lidt :)
og tak for point :)
Avatar billede matthiasmarkussen Nybegynder
01. juni 2006 - 15:41 #10
Lige en ting jeg har spottet.

Jeg har lagt dit eksempel her

http://www.woodpekker.dk/js/test/test.asp

Klikker man skiftevis på "Vis undersider 1" og "vis undersider jeps" så går det fint (De folder selv sammen når man klikker andetsteds).

Folder man så eksempelvis "Vis undersider jeps" sammen manuelt ved at klikke derpå, og så klikker på "Vis undersider 1" Så foldes begge menuer ud?!

kan du hjælpe her? kan ikke lige finde fejlen - kan evt smide points oveni
Avatar billede mclemens Nybegynder
01. juni 2006 - 18:17 #11
Min fejl ... og ikke flere point det var
bare en mangel på omtanke fra min side af...


<script type="text/JavaScript">
var curt="";
var curi="start";

function toggle(ctarget,cinfo){

if(ctarget!=0){
  if(curt!=""){
  tn=document.getElementById("sub"+curt);
/* Hvis den ønskede menu er lig tidligere skal den tidligere menu vises/skjules */
  if(curt==ctarget)tn.style.display=(tn.style.display=="none")?"block":"none";
/* Ellers så skal den bare være skjult */
  else tn.style.display="none";
  }

  if((curt!=ctarget)&&(ctarget!=-1))document.getElementById("sub"+ctarget).style.display="block";
  curt=(ctarget!=-1)?ctarget:"";
}


if(cinfo!=0){
  if(curi!=""){
  tn=document.getElementById("info"+curi);
  tn.style.display=(tn.style.display=="none")?"block":"none";
  }

  document.getElementById("info"+cinfo).style.display="block";
  curi=cinfo;
}

}
</script>
Avatar billede matthiasmarkussen Nybegynder
02. juni 2006 - 08:08 #12
Super! det ser ud til at virke! Tak
Avatar billede mclemens Nybegynder
02. juni 2006 - 09:56 #13
Fedt... og det var så lidt :)
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