Avatar billede martin_l Nybegynder
22. marts 2004 - 14:27 Der er 4 kommentarer og
1 løsning

Tree menu

Hej!
Jeg står og skal bruge en menu til min hjemmeside. Den skal være i stil med tdc's http://privat.tdc.dk/internet/ eller http://www.rolator.dk.
Den skal folde ud, når der klikkes på teksten.
Der skal være mindst 3 niveauer.
Den skal kunne folde ud til den side, som jeg befinder mig på, den skal altså ikke lukke sammen, når jeg klikker på et menupunkt. (jeg bruger ikke frames på siden og det vil jeg heller ikke)!

Hvis der nogen, som kan ændre i denne her menu (http://www.frontierit.com/resources/ftm/), så menuen åbner, når der klikkes på menupunkt(teksten), så er det også fint nok.
Avatar billede roenving Novice
22. marts 2004 - 20:05 #1
Der skal tilføjes nogle linjer inde midt i scriptet, så du får lige alt det, som skal bruges (fra textboxen på frontierIT !-)

<style type="text/css">
a{color:green;}
a:link{color:red;}
a:visited{color:red;}
a:hover{color:blue;}
a:active{color:purple;}
.ftm {
    margin: 0px;
    padding: 0px;
    position: relative;
    left: -8px;
}
ul.ftm {
    margin: 0px;
    list-style-type: none;
}
ul.ftm * {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
    white-space: nowrap;   
}
ul.ftm ul {
    margin: 0px 0px 0px 10px;
    display: none;
}
ul.ftm img {
    width: 9px;
    height: 9px;
}
</style>

<script language="Javascript">
function initTree() {
    /* Original Code by sean@frontierit.com
    ** enhanced to support onclick on links
    ** by roenving 2004 */
    if (!document.getElementById) return;
   
    var aTrees = document.getElementsByTagName('UL');
   
    if (aTrees.length > 0) {
        for (var i = 0;aTrees.length>i; i++) {
            if (aTrees[i].className == "ftm") {
                ftm(aTrees[i]);
            }
        }
    }
}

function ftm(menu) {

    var docs  = menu.getElementsByTagName('LI');

    for (var i = 0;docs.length>i; i++) {
        var oHref = document.createElement("IMG");
        oHref.src = "../img/x.gif";
        oHref.style.display = 'inline';
        oHref.style.marginRight = '3px';

        if (docs[i].getElementsByTagName('UL').length > 0 ) {

            oHref.src = "../img/plus.gif";
            oHref.style.cursor = 'pointer';
           
            oHref.onmousedown = function() {
                if (this.parentNode.childNodes[2].style.display == '' ||
                    this.parentNode.childNodes[2].style.display == 'none' ) {
                    this.parentNode.childNodes[2].style.display = 'block';
                    this.src = "../img/minus.gif";
               
                } else {
                    this.parentNode.childNodes[2].style.display = 'none';
                    this.src = "../img/plus.gif";
                }
            }
            docs[i].firstChild.onmousedown = function() {
                if (this.parentNode.childNodes[2].style.display == '' ||
                    this.parentNode.childNodes[2].style.display == 'none' ) {
                    this.parentNode.childNodes[2].style.display = 'block';
                    this.src = "../img/minus.gif";
               
                } else {
                    this.parentNode.childNodes[2].style.display = 'none';
                    this.src = "../img/plus.gif";
                }
            }
        }
        docs[i].insertBefore(oHref,docs[i].firstChild);
    }
   
    /* Expand Folding Tree Menu to current url if it exists in the tree */
    for (var i = 0;docs.length>i; i++) {

        if (docs[i].childNodes[1].nodeName == 'A' &&
            docs[i].childNodes[1].href == location ) {
            docs[i].firstChild.src = "../img/selected.gif";
            var q = docs[i].parentNode;
           
            while (q.className != 'ftm') {
                q.firstChild.src = "../img/minus.gif";
                  q.style.display = 'block';
                  q = q.parentNode;
            }
        }
    }

}

window.onload = initTree;
</script>
Avatar billede martin_l Nybegynder
23. marts 2004 - 09:34 #2
Det er fand'me lækkert lavet. Det er godt, at der nogen som kan finde ud af at rette i javascripts.
Smid et svar og så skal jeg sætte point ind på din konto.
Og mange tak for hjælpen.
Avatar billede martin_l Nybegynder
23. marts 2004 - 10:40 #3
Hovsa, der er en lille fejl.
Når der klikkes på teksten/linket, så skifter billedet ikke mellem plus og minus...
Avatar billede roenving Novice
23. marts 2004 - 13:42 #4
Den blok jeg indsatte skal til rettes, så den tager fat i det rette:

            docs[i].firstChild.onmousedown = function() {
                if (this.parentNode.childNodes[2].style.display == '' ||
                    this.parentNode.childNodes[2].style.display == 'none' ) {
                    this.parentNode.childNodes[2].style.display = 'block';
                    this.parentNode.firstChild.src = "../img/minus.gif";
               
                } else {
                    this.parentNode.childNodes[2].style.display = 'none';
                    this.parentNode.firstChild.src = "../img/plus.gif";
                }
            }

-- og jeg havde nogen problemer med at få IE til at kigge på det, den har jeg ikke forstået endnu, så jeg vender måske tilbage med en kommentar til det !-)

-- men ellers velbekomme '-)
Avatar billede roenving Novice
23. marts 2004 - 14:19 #5
-- og tak for points ;~}
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