Avatar billede swasper Nybegynder
26. januar 2002 - 14:28 Der er 5 kommentarer og
1 løsning

Dropdown menuen skal forsvinde!

Hej Eksperter!

Følgende kode laver en dropdown menu og det virker også fint, men jeg vil gerne have det sådan at når man flytter musen fra menuen så skal den forsvinde efter et par sekunder, og ikke som nu hvor man er nød til at klikke et eller andet sted på siden.

Er der nogen der kan fixe det?


<html>
<head>
    <title></title>
<STYLE>
.menu {
    background-color:    #000000;
    font-family:        Tahoma, Arial;
    font-size:        10px;
    font-weight:        plain;
    color:             #ffffff;
    text-align:         center;
    cursor:            hand;
}

a:hover.menu {
    background-color:    #000000;
    font-family:        Tahoma, Arial;
    font-size:        10px;
    font-weight:        plain;
    color:             #A6B98F;
    text-align:         center;
    cursor:            hand;
}
.submenu {
    position:        absolute;
    background-color:    #000000;
    width:            120px;
}

.menu-text {
    font-family:        Tahoma, Arial;
    font-size:        11px;
    font-weight:        plain;
    color:            #ffffff;
    text-decoration:    none;
}

a:hover.menu-text {
    font-family:        Tahoma, Arial;
    font-size:        11px;
    font-weight:        plain;
    color:            #A6B98F;
    text-decoration:    none;
}

</STYLE>
<SCRIPT>
var cm=null;
document.onclick = new Function("show(null)")
function getPos(el,sProp) {
    var iPos = 0
    while (el!=null) {
        iPos+=el["offset" + sProp]
        el = el.offsetParent
    }
    return iPos

}

function show(el,m) {
    if (m) {
        m.style.display='';
        m.style.pixelLeft = getPos(el,"Left")
        m.style.pixelTop = getPos(el,"Top") + el.offsetHeight
    }
    if ((m!=cm) && (cm)) cm.style.display='none'
    cm=m
}
</SCRIPT>
</head>

<BODY>

<span ID="d1" onmouseover="show(this,ds1);" class="menu">MENU 1</span><span ID="d2" onmouseover="show(this,ds2);" class="menu">MENU 2</span><span ID="d3" onmouseover="show(this,ds3);" class="menu">MENU 3</span>

<DIV ID="ds1" CLASS="submenu" STYLE="display:none">
<A HREF="http:\\www.siteexperts.com" class="menu-text">Site Experts</A>
<BR>
<A HREF="http:\\www.webtools.com" class="menu-text">Web Tools</A>
<BR>
<A HREF="http:\\www.webdevelopersjournal.com" class="menu-text">Web Developers Journal</A>
</DIV>

<DIV ID="ds2" CLASS="submenu" STYLE="display:none">
<A HREF="http:\\www.xml101.com" class="menu-text">XML 101</A>
<BR>
<A HREF="http:\\www.xmlsoftware.com" class="menu-text">XML Software</A>
<BR>
<A HREF="http:\\www.xml.com" class="menu-text">XML.com</A>
</DIV>

<DIV ID="ds3" CLASS="submenu" STYLE="display:none">
<A HREF="http:\\www.microsoft.com" class="menu-text">Microsoft</A>
<BR>
<A HREF="http:\\www.amazon.com" class="menu-text">Amazon</A>
<BR>
<A HREF="http:\\www.users.globalnet.co.uk/~perry" class="menu-text">JP's DHTML Web Site</A>
</DIV>

</body>
</html>
Avatar billede Slettet bruger
26. januar 2002 - 20:45 #1
Prøv:

<html>
<head>
    <title></title>
<STYLE>
.menu {
    background-color:    #000000;
    font-family:        Tahoma, Arial;
    font-size:        10px;
    font-weight:        plain;
    color:            #ffffff;
    text-align:        center;
    cursor:            hand;
}

a:hover.menu {
    background-color:    #000000;
    font-family:        Tahoma, Arial;
    font-size:        10px;
    font-weight:        plain;
    color:            #A6B98F;
    text-align:        center;
    cursor:            hand;
}
.submenu {
    position:        absolute;
    background-color:    #000000;
    width:            120px;
}

.menu-text {
    font-family:        Tahoma, Arial;
    font-size:        11px;
    font-weight:        plain;
    color:            #ffffff;
    text-decoration:    none;
}

a:hover.menu-text {
    font-family:        Tahoma, Arial;
    font-size:        11px;
    font-weight:        plain;
    color:            #A6B98F;
    text-decoration:    none;
}

</STYLE>
<SCRIPT>
var cm=null;
document.onclick = new Function("show(null)")
function getPos(el,sProp) {
    var iPos = 0
    while (el!=null) {
        iPos+=el["offset" + sProp]
        el = el.offsetParent
    }
    return iPos

}

function show(el,m) {
    if (m) {
        m.style.display='';
        m.style.pixelLeft = getPos(el,"Left")
        m.style.pixelTop = getPos(el,"Top") + el.offsetHeight
    }
    if ((m!=cm) && (cm)) cm.style.display='none'
    cm=m
}
</SCRIPT>
</head>

<BODY>

<span ID="d1" onMouseOver="show(this,ds1);" onMouseOut="to = setTimeout('show(null)',1000);" class="menu">MENU 1</span><span ID="d2" onmouseover="show(this,ds2);" class="menu">MENU 2</span><span ID="d3" onmouseover="show(this,ds3);" class="menu">MENU 3</span>

<DIV ID="ds1" CLASS="submenu" STYLE="display:none" onMouseOver="to = null;" onMouseOut="to = setTimeout('show(null)',1000);">
<A HREF="http:\\www.siteexperts.com" class="menu-text">Site Experts</A>
<BR>
<A HREF="http:\\www.webtools.com" class="menu-text">Web Tools</A>
<BR>
<A HREF="http:\\www.webdevelopersjournal.com" class="menu-text">Web Developers Journal</A>
</DIV>

<DIV ID="ds2" CLASS="submenu" STYLE="display:none" onMouseOver="to = null;" onMouseOut="to = setTimeout('show(null)',1000);">
<A HREF="http:\\www.xml101.com" class="menu-text">XML 101</A>
<BR>
<A HREF="http:\\www.xmlsoftware.com" class="menu-text">XML Software</A>
<BR>
<A HREF="http:\\www.xml.com" class="menu-text">XML.com</A>
</DIV>

<DIV ID="ds3" CLASS="submenu" STYLE="display:none" onMouseOver="to = null;" onMouseOut="to = setTimeout('show(null)',1000);">
<A HREF="http:\\www.microsoft.com" class="menu-text">Microsoft</A>
<BR>
<A HREF="http:\\www.amazon.com" class="menu-text">Amazon</A>
<BR>
<A HREF="http:\\www.users.globalnet.co.uk/~perry" class="menu-text">JP's DHTML Web Site</A>
</DIV>

</body>
</html>
Avatar billede Slettet bruger
26. januar 2002 - 20:46 #2
Ups! Skift denne linje:
<span ID="d1" onMouseOver="show(this,ds1);" onMouseOut="to = setTimeout('show(null)',1000);" class="menu">
... ud med:
<span ID="d1" onMouseOver="to = null; show(this,ds1);" onMouseOut="to = setTimeout('show(null)',1000);" class="menu">
Avatar billede Slettet bruger
26. januar 2002 - 20:52 #3
Nej, det virker ikke så godt...
Avatar billede Slettet bruger
26. januar 2002 - 20:57 #4
Desværre! Den kan jeg ikke fikse. Det ser ud som om, at et elements onMouseOver-event bliver affyret før et andet elements onMouseOut. Højst ærgerligt...
Avatar billede swasper Nybegynder
26. januar 2002 - 21:31 #5
Det er også lige meget for den virker ikke i Mozilla :-(

Som tak for din indsats for du sgu pointsene :-)
Avatar billede Slettet bruger
27. januar 2002 - 13:15 #6
Tak, men det havde du nu ikke behøvet!
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