Avatar billede cyberdude Nybegynder
02. januar 2005 - 11:11 Der er 7 kommentarer og
1 løsning

menu i layers / vist ikke vist

Hejsa,

Jeg er ved at lave menu til min side, og vil benytte layers, jeg vil gerne have det som på eks. http://tv.tv2.dk når man klikker på overskriften til et program i oversigten så folder det noget tekst ud - hertil er jeg fint selv med på hvordan det laves, men jeg vil gerne have den til at når/ hvis man kliker på et andet menu punkt så klapper det foregående punkt sammen igen... ??
Avatar billede olebole Juniormester
02. januar 2005 - 11:52 #1
<ole>

Jeg har lavet et eksempel på netop den menu et par gange i efteråret, men på grund af E's ultimativt elendige søgefunktion, er det ikke muligt for mig at finde dem igen ... og jeg orker ikke at sidde og lave den én gang til.

Skriv til Eksperten og klag over, de har en søgefunktion, de fleste PHP-newbies blandt deres brugere kan skrive langt, langt bedre  :o|

/mvh
</bole>
Avatar billede olebole Juniormester
02. januar 2005 - 12:05 #2
Så lykkedes det zq alligevel  :)

<style type="text/css">
.cont {
    width: 200px;
    font: 11px verdana, arial, sans-serif;
}
.cont img {
    vertical-align: middle;
}
.cont a {
    font-weight: bold;
    color: #000000;
    text-decoration: none;
}
.cont a:visited {
    color: #000000;
    text-decoration: none;
}
.cont a:hover {
    color: #cc0000;
    text-decoration: none;
}
.cont div {
    margin: 5px 0px 5px 20px;
    background-color: #ededed;
    border: 1px dashed #cccccc;
}
</style>

<script type="text/JavaScript">
var actMen = false;
function toggle(elm) {
    var idInx = elm.id.split("head_")[1];
    var tDiv = document.getElementById("text_"+idInx);
    var im = document.getElementById("icn_"+idInx);
    if (actMen) {
        actMen.elm.style.display = "none";
        actMen.im.src = "open.gif";
    }
    tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
    im.src = (im.src.indexOf("open")!=-1)? "close.gif" : "open.gif";
    actMen = {"elm":tDiv, "im":im};
}
</script>

<div class="cont"><img id="icn_0" src="open.gif">
    <a href="#" id="head_0" onclick="toggle(this);return false">En overskrift</a>
    <div id="text_0" style="display:none">
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    Nullam tristique risus sed massa lobortis fermentum.
    Sed pretium sem sed ligula. Suspendisse iaculis
    </div>
</div>

<div class="cont"><img id="icn_1" src="open.gif">
    <a href="#" id="head_1" onclick="toggle(this);return false">En anden overskrift</a>
    <div id="text_1" style="display:none">
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    Nullam tristique risus sed massa lobortis fermentum.
    Sed pretium sem sed ligula. Suspendisse iaculis
    </div>
</div>
Avatar billede cyberdude Nybegynder
02. januar 2005 - 14:00 #3
Hej ole,

det funger næsten... glemte bare lige at nævne at der er menu i 3 niveauer...
hovedemenu
  sub1
    sub2

som det er nu så når man klikker på sub1 så forsvinder sub1 og sub 2 vises som forventet... men sub1 skulle jo også gerne blive vist...

Den giver en script error i det øjeblik at der klikkes på linkene, men når siden er færdig loadet er der ingen fejl længere....

Har rettet lidt i selve scriptet da der ikke skal bruges billeder i menuen...
så nu ser det sådant her ud
<script type="text/JavaScript">
var actMen = false;
function toggle(elm) {
    var idInx = elm.id.split("head_")[1];
    var tDiv = document.getElementById("text_"+idInx);
    if (actMen) {
        actMen.elm.style.display = "none";
    }
    tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
    actMen = {"elm":tDiv};
}
</script>
Avatar billede cyberdude Nybegynder
02. januar 2005 - 14:09 #4
og når man klikker på sub2 så lukker hele menupunktet sammen...
Avatar billede cyberdude Nybegynder
02. januar 2005 - 14:16 #5
har lokaliseret fejlen....

klikker man på et menupunkt som IKKE har noget underpunkt at vise generere den en fejl.... ??
Avatar billede cyberdude Nybegynder
02. januar 2005 - 14:29 #6
har fået rettet den fejl ved at lave nogle tjek i php på om der rent faktisk er underpunkter, og er der ikke så udskrives onclick... funktionen ikke på det punkt...

Men nu er problemet blot at når man klikker på det sidste punkt der er i tilfældet er sub2 så lukkes menupunktet sammen... ?
Avatar billede cyberdude Nybegynder
02. januar 2005 - 14:50 #7
en lille opsumering med fejl...

Når der klikkes på sidste punkt i tilfældet sub2 så lukker hovedepunktet sammen og viser det <a href... tagget linker til - hovedepunktet skal gerne forblive åben her også

Klikkes der på et menupunkt som har underpunkter så folder underpunkterne fint ud, men linket i <a href... tagges vises IKKE ??

Klikker man først på et hovedepunkt som har underpunkter, og derefter på et andet hovedepunkt som ligeledes har underpunkter, så lukkes det førstklikkede hovedepunkt ikke sammen, men klikker man derimod på et hovedepunkt som ikek har undepunkter lukker det hovedepunkt med underpunkter fint sammen igen ?

her er scriptet som det ser ud nu:
<script type="text/JavaScript">
var actMen = false;
function toggle(elm) {
    var idInx = elm.id.split("head_")[1];
    var tDiv = document.getElementById("text_"+idInx);
    tDiv.style.display = (tDiv.style.display=="none")? "block" : "none";
    actMen = {"elm":tDiv};
}
</script>
Avatar billede cyberdude Nybegynder
05. januar 2005 - 14:38 #8
har fået lavet en løsning i ren php der funger, så har droppet layers p.t.
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