Avatar billede Keld Nielsen Professor
23. januar 2007 - 14:14 Der er 2 kommentarer og
1 løsning

Rettelse af javascript-menu

Jeg har fundet et godt script (synes jeg selv) til en menu.

Men der er 2 ting jeg gerne vil have rettet:
1. at menupunkterne med undermenuer, også skiftede farve ved mouseover.
2. at "udfoldede" menuer, foldede sig sammen ved klik på en menupunkt uden undermenu.

Her er en hel side:

<!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>Untitled Document</title>
<style type="text/css">
.menutitle{
    cursor:pointer;
    margin-bottom: 5px
    background-color:#CCCCCC;
    color:#000000;
    width:150px;
    padding:2px;
    text-align:left;
    font-weight:normal;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-style: normal;
    line-height: normal;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #FFFFFF;
}

.menutitle a:link {
    text-decoration:none;
    color: black;
}   
.menutitle A:visited  { color: black; text-decoration: none}
.menutitle A:hover  { color: white; text-decoration: none}
.menutitle A:active  {color: white; text-decoration : none}

.submenu{
    margin-bottom: 2px;
    margin-left: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #000000;
}
.submenu a:link {
    text-decoration:none;
    color: black;
}   
.submenu A:visited  { color: white; text-decoration: none}
.submenu A:hover  { color: white; text-decoration: none}
.submenu A:active  {color: white; text-decoration : none}

.background {
    background-color: #CCCCCC;
}
</style>

<script type="text/javascript">

/***********************************************
* Switch Menu script- by Martial B of http://getElementById.com/
* Modified by Dynamic Drive for format & NS4/IE4 compatibility
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistmenu="yes" //"yes" or "no". Make sure each SPAN content contains an incrementing ID starting at 1 (id="sub1", id="sub2", etc)
var persisttype="sitewide" //enter "sitewide" for menu to persist across site, "local" for this page only

if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function SwitchMenu(obj){
    if(document.getElementById){
    var el = document.getElementById(obj);
    var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
        if(el.style.display != "block"){ //DynamicDrive.com change
            for (var i=0; i<ar.length; i++){
                if (ar[i].className=="submenu") //DynamicDrive.com change
                ar[i].style.display = "none";
            }
            el.style.display = "block";
        }else{
            el.style.display = "none";
        }
    }
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function onloadfunction(){
if (persistmenu=="yes"){
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=get_cookie(cookiename)
if (cookievalue!="")
document.getElementById(cookievalue).style.display="block"
}
}

function savemenustate(){
var inc=1, blockid=""
while (document.getElementById("sub"+inc)){
if (document.getElementById("sub"+inc).style.display=="block"){
blockid="sub"+inc
break
}
inc++
}
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=(persisttype=="sitewide")? blockid+";path=/" : blockid
document.cookie=cookiename+"="+cookievalue
}

if (window.addEventListener)
window.addEventListener("load", onloadfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", onloadfunction)
else if (document.getElementById)
window.onload=onloadfunction

if (persistmenu=="yes" && document.getElementById)
window.onunload=savemenustate

</script>
</head>

<body>
<!-- Keep all menus within masterdiv-->
<div id="masterdiv" class="background">
<div class="menutitle"><a href="test.htm">Velkommen</a></div>
<div class="menutitle"><a href="test2.htm">Butik, brugskunst, lys</a></div>
<div class="menutitle"><a href="test3.htm">Selvdyp</a></div>
    <div class="menutitle" onclick="SwitchMenu('sub1')">Charlys Café</div>
    <span class="submenu" id="sub1">
        <a href="new.htm">Caféen</a><br>
        <a href="morezone/">Bo Bendixen Galleri</a>
    </span>

    <div class="menutitle" onclick="SwitchMenu('sub2')">Egen fabrikation</div>
    <span class="submenu" id="sub2">
        <a href="notice.htm">Hånddyppet lys</a><br>
        <a href="faqs.htm">Kertelys</a><br>
        <a href="faqs.htm">Julelys</a><br>
        <a href="faqs.htm">Dekorationslys</a><br>
        <a href="faqs.htm">Kalenderlys</a><br>
        <a href="faqs.htm">Keglelys</a><br>
        <a href="faqs.htm">Pyramidelys</a><br>
        <a href="faqs.htm">Løglys</a><br>
        <a href="faqs.htm">Patina</a><br>
        <a href="faqs.htm">Bloklys blank</a><br>
        <a href="faqs.htm">Bloklys krystalmat</a><br>
        <a href="faqs.htm">Bloklys 3-væger</a><br>
        <a href="faqs.htm">3-farvet bloklys</a><br>
        <a href="faqs.htm">3-farvet bloklys 6-kantet</a><br>
        <a href="faqs.htm">Bloklys - fyrfad</a><br>
        <a href="faqs.htm">Lyshøvl</a><br>       
        <a href="help.htm">Lysslukker</a>
    </span>
<div class="menutitle"><a href="test.htm">Kontakt</a></div>
<div class="menutitle"><a href="test.htm">Nyheder</a></div>
</body>
</html>
Avatar billede psykochicken Nybegynder
23. januar 2007 - 16:37 #1
1: sæt et link-tag rundt om teksten ex:
<a href="#" onclick="return false;">Charlys Café</a>

2: tilføj funktionen til alle link i undermenuen ex:
<a href="new.htm" onclick="SwitchMenu('sub1')">Caféen</a><br>

/psc
Avatar billede Keld Nielsen Professor
23. januar 2007 - 16:55 #2
Hej

Masser af tak for hjælpen!

Smid et svar.
Avatar billede psykochicken Nybegynder
24. januar 2007 - 18:16 #3
Velbekomme ;o)

/psc
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