Avatar billede mathiash Nybegynder
19. november 2005 - 21:20 Der er 6 kommentarer og
1 løsning

onmouseover hopper sjovt

Hej!

Jeg er igang med at lave en simpel dropdown menu.
Når musen kommer over bliver boksen højere.

Men når man tager musen over laver den på en måde mouseover/mouseout hele tiden så menuen lukker og åbner.

Her er min kode:

Div
<div onmouseover="menu_over(this, 'forside');" onmouseout="menu_out(this);" style="left: 400px;" class="menu">&nbsp;</div>

JavaScript funktioner
function menu_over(obj, side) {
    over = 1;
    obj.innerHTML = "<img src=\"images/menu_" + side + ".gif\" alt=\"\">";
    obj.style.height = "100px";
}

function menu_out(obj) {
    obj.style.height = "24px";
    obj.innerHTML = "";
}


CSS
.menu {
        background-color: #A9D9AA;
        width: 24px;
        height: 24px;
        position: absolute;
        cursor: pointer;
}
Avatar billede tangveje Nybegynder
19. november 2005 - 23:00 #1
Jeg kunne forestille mig at det skyldes at når du holder musen over dukker dit billede op, og fra det øjeblik er det reelt billedet musen er over og ikke dit div, så mouseout aktiveres og billedet forsvinder hvorefter musen igen befinder sig over div'et, og så videre.

Giver det mening?
Avatar billede psykochicken Nybegynder
22. november 2005 - 20:16 #2
I stedet for at skifte hele innerHTML, kunne du måske lave et standardbillede (o.gif)og gøre noget i stil med:
<script type="text/javascript">
function menu_over(obj, side) {
    obj.firstChild.src = "images/menu_" + side +".gif";
    obj.firstChild.style.height = "100px";   
}
function menu_out(obj) {
    obj.src = "o.gif";
    obj.style.height = "24px";
}
</script>
<div style="left: 400px;" onmouseover="menu_over(this, 'forside');" class="menu"><img src="o.gif" alt="" onmouseout="menu_out(this);"></div>

/psc
Avatar billede mathiash Nybegynder
24. november 2005 - 19:13 #3
Hej!

Psykochicken's forslag er lige hvad jeg har brug for tror jeg... Men det virker stadig ikke helt.


Min kode:

Div
<div onmouseover="menu_over(this, 'forside');" style="left: 400px;" class="menu">
<img src="images/temp.gif" alt="" height="0" onmouseout="menu_out(this);" style="height: 24px;">
</div>

JavaScript funktioner
function menu_over(obj, side) {
    obj.firstChild.src = "images/menu_" + side +".gif";
    obj.firstChild.style.height = "125px";
}

function menu_out(obj) {
    obj.src = "images/temp.gif";
    obj.style.height = "24px";
}

CSS
.menu {
        background-color: #A9D9AA;
        width: 24px;
        height: 24px;
        position: absolute;
        cursor: pointer;
}

Min fejl i firefox:
Fejl: obj.firstChild.style has no properties
Kildefil: script.js
Linje: 3

Og linje 3 er self. så:
obj.firstChild.style.height = "125px";
Avatar billede psykochicken Nybegynder
24. november 2005 - 21:08 #4
der må ikke være "linieskift" i:
<div onmouseover="menu_over(this, 'forside');" style="left: 400px;" class="menu">
<img src="images/temp.gif" alt="" onmouseout="menu_out(this);" style="height: 24px;">

...skrives ud i én køre:
<div onmouseover="menu_over(this,'forside');" style="left: 400px;" class="menu"><img src="o.gif" alt="" onmouseout="menu_out(this);" style="height: 24px;">

/psc
Avatar billede mathiash Nybegynder
25. november 2005 - 14:01 #5
Tak det virkede.. Læg et svar...
Avatar billede psykochicken Nybegynder
25. november 2005 - 14:37 #6
det kom her ;o)
Avatar billede psykochicken Nybegynder
26. november 2005 - 23:04 #7
..og tak for point ;o)
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