Avatar billede hkb-x Nybegynder
09. maj 2006 - 20:23 Der er 8 kommentarer og
1 løsning

onMouseOut og <input>

Jeg har en <div> der skifter farve ved onMouseOver og igen ved onMouseOut... men i den har jeg et <input> og når musen kommer over den skifter baggrunden farve som ved onMouseOut... hvordan får jeg til den at blive samme farve??
Avatar billede olebole Juniormester
09. maj 2006 - 20:34 #1
<ole>

- prøv lige igen  :)

/mvh
</bole>
Avatar billede hkb-x Nybegynder
09. maj 2006 - 20:55 #2
jeg har en div der bliver synlig ved onmousover (får en gul bg-farve) og usynlig ved onmouseout... i den div har jeg en indput box... når musen kommer over den er det som om den ikke længere er over div boxen selvom inputet ligen midt i den...
Avatar billede olebole Juniormester
09. maj 2006 - 21:49 #3
nej, for så laver du jo faktisk mouseout på div'et - og mouseover på feltet  ;o)

Derfor har MS implementeret onmousenter og onmouseleave:
    http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/events/onmouseenter.asp

- og:
    http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/events/onmouseleave.asp

En løsning kommer anpå resten af koden - og hvordan det præcist skal bruges  :)
Avatar billede hkb-x Nybegynder
09. maj 2006 - 21:54 #4
det skal kun køre i firefox... er der noget at gøre der?
Avatar billede hkb-x Nybegynder
09. maj 2006 - 21:56 #5
hvs jeg giver input'et en id kan man så funde ud af om musen er over det?
Avatar billede olebole Juniormester
10. maj 2006 - 01:37 #6
Denne her burde vel være ret sikker  :)

<script type="text/JavaScript">
function getPos(elm) {
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy}
}
function myEnter(o) {
    o.style.background = "yellow";
    document.onmousemove = function(e) {
        var isWithin, x, y, oP = getPos(o);
        e = e ? e : window.event;
        x = e.clientX; y = e.clientY;
        isWithin = (x>oP.x&&x<(oP.x+o.offsetWidth) && y>oP.y&&y<(oP.y+o.offsetHeight)) ? true : false;
        if (!isWithin) myLeave(o);
    }
}
function myLeave(o) {
    o.style.background = "red";
    document.onmousemove = function(){};
}
</script>

<div style="padding:100px">
<div style="width:400px;height:300px;background:red" onmousemove="myEnter(this)">
    <input type="text" style="margin:30px;">
</div>
</div>
Avatar billede hkb-x Nybegynder
10. maj 2006 - 10:08 #7
kan du ikke skrive helt præcist hvordan jeg får musens position på skærmen... så ken jeg selv lege lidt videre med det...
Avatar billede hkb-x Nybegynder
10. maj 2006 - 10:50 #8
har løst det... skriv svar for point...
Avatar billede olebole Juniormester
10. maj 2006 - 17:15 #9
svar  :)
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