Avatar billede klejner Nybegynder
25. august 2002 - 01:58 Der er 23 kommentarer og
1 løsning

onMouseOver i <area>

Normal kan man ændre indholdet af statusbaren, når markøren flyttes ind over et link på flg måde:

<a href="fil.htm" onMouseOver="window.status='Text'; return true;">
Link </a>

Men ved

<area shape="rect" href="fil.htm" coords="1,1 10,10" onMouseOver=="window.status='Text'; return true;">

virker den ikke. Her bliver teksten skrevet i statusbaren, når markøren flyttes ud igen.

Hvad skal jeg gøre for at det virker efter hensigten???
Avatar billede 7th Praktikant
25. august 2002 - 02:06 #1
OnMouseMove="window.status='din tekst'; return true;"
OnMouseOut="window.status=''; return true;"
Avatar billede 7th Praktikant
25. august 2002 - 02:26 #2
OnMouseEnter virker også. Jeg ved ikke hvad forskellen er helt, men det kan du læse om her http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/events/htmlanchorevents/onmouseenter.asp
Avatar billede 7th Praktikant
25. august 2002 - 02:28 #3
OnMouseEnter - udløses når musen føres ind i objektet.
OnMouseMove - udløses når musen føres hen over objektet.
Avatar billede Slettet bruger
25. august 2002 - 13:42 #4
7th>> onMouseMove udføres, når musen bevæges. Du mener onMouseOver.

klejner>> Prøv:

<area shape="rect" href="fil.htm" coords="1,1 10,10" onMouseOver="window.status = 'Text'; return true;" onMouseOut="window.status = ''; return true;">
Avatar billede 7th Praktikant
25. august 2002 - 15:26 #5
phoenixv : nej, jeg mener OnMouseMove eller OnMouseEnter. Et area er et objekt, derfor er det forkert at bruge OnMouseOver.
Avatar billede Slettet bruger
26. august 2002 - 16:03 #6
onMouseMove udføres, når musen bevæger sig. Ikke når man bevæger musen ind over et objekt. Det kan ikke diskuteres. Jeg har aldrig hørt om, at onMouseOver ikke virker på et <area>. Faktisk har jeg selv brugt det engang. Og at bruge onMouseOver vil være langt mindre ressourcekrævende end onMouseMove.
Avatar billede Slettet bruger
26. august 2002 - 16:23 #7
Du har faktisk ret i, at mit script ikke virker, men det er af andre årsager. Browseren kan nemlig ikke lide, at den ikke må vise url'en. onMouseOver virker fint, men der skal lidt fiksfakseri ind i billedet:

http://phoenixv.h4f.dk/imap.html
Avatar billede Slettet bruger
26. august 2002 - 16:27 #8
Man kan også vælge at sætte et timeout på at skifte statusteksten, men selv med en "venteværdi" på 1 vil baren lige flimre med url'en.
Avatar billede 7th Praktikant
26. august 2002 - 20:48 #9
Ahh smart måde at løse onMouseOver "problemet" på. Den havde jeg ikke lige tænkt på... Nå men så har vi da begge to ret på hver sin måde ;)
Avatar billede Slettet bruger
26. august 2002 - 20:50 #10
Ja, men jeg har mest! :)

onMouseOver kan i det hele taget bruges på næsten alle visuelle elementer. Faktisk alle jeg er stødt på.
Avatar billede 7th Praktikant
26. august 2002 - 21:13 #11
Det eneste lidt misvisende i dit eksempel er hvis area felter f.eks hedder coords="25,25,149,49" coords="25,25,125,25". Så vil der jo være en cursor hånd på hele area feltet som indikerer et link selvom der ikke er noget link visse steder, men nok om det, klejner burde da have fået svar på spørgsmål nu ;)
Avatar billede klejner Nybegynder
26. august 2002 - 22:16 #12
phoenixv >> Forskellen på mit eksempel og dit på http://phoenixv.h4f.dk/imap.html er at du ikke benytter dig af
href="link"
men af
onclick="self.location.href='link';"
Dette gør at onmouseover kommer til at virke, men det bevirker også at der ikke bliver vist en link-cursor (en hånd med en finger) som der ellers ville.

Kan det ikke laves sådan at både link-cursoren er der, og at onmouseover virker???
Avatar billede klejner Nybegynder
26. august 2002 - 22:19 #13
Undskyld der kommer godt nok den korrekt cursor frem i det eksempel, men det er pga sådan style fixfax. Kan det ikke undgåes???
Avatar billede klejner Nybegynder
26. august 2002 - 22:24 #14
....Hvis man ikke kan undgå det, hvordan ungår man så at der kommer en håndcursor, når at cursoren er uden for et <area> men stadig inden for billedet??
Avatar billede 7th Praktikant
27. august 2002 - 01:27 #15
Fjern style="cursor: pointer; cursor: hand" og tilføj href="#" i hvert area, så kommer hånden kun på dine area felter ;)

<map name="test">
<area shape="rect" coords="0,0,149,49" href="#" onMouseOver="window.status = 'Eksperten'; return true;" onMouseOut="window.status = ''; return true;" onClick="self.location.href = 'http://www.eksperten.dk';">
<area shape="rect" coords="0,50,149,99" href="#" onMouseOver="window.status = 'DynamicDrive'; return true;" onMouseOut="window.status = ''; return true;" onClick="self.location.href = 'http://www.dynamicdrive.com';">
<area shape="rect" coords="0,100,149,149" href="#" onMouseOver="window.status = 'Something.com'; return true;" onMouseOut="window.status = ''; return true;" onClick="self.location.href = 'http://www.something.com';">
</map>

<img src="imap.gif" width="150" height="150" border="0" usemap="#test">
Avatar billede 7th Praktikant
27. august 2002 - 01:32 #16
Glemte lige at sige, så skal de hedde onMouseMove i stedet for og så er du lige vidt. Det med hånden kan phoenixv sikkert klare på en bedre måde, men det er mit bedste bud.
Avatar billede 7th Praktikant
27. august 2002 - 01:56 #17
Til at klare phoenixv tip tror jeg du skal have fat i noget javascript ala (this.style) på onclick funktionen.
Avatar billede Slettet bruger
27. august 2002 - 13:39 #18
Det er ikke så svært. Jeg opdaterer lige mit link. 2 sek.
Avatar billede Slettet bruger
27. august 2002 - 13:49 #19
Mission accomplished.
Avatar billede Slettet bruger
27. august 2002 - 13:57 #20
Det ser dog ud, som om at Netscape (i hvert fald version 7) ikke vil ændre cursoren, når man flytter musen over et area. De andre funktioner virker dog helt fint.
Så enten bliver du nødt til at leve med det, eller vælge en anden ikke-så-tilfredsstillende løsning.
Avatar billede klejner Nybegynder
28. august 2002 - 20:24 #21
Tjaaa det er vel i orden. Men lige en sidst ting...
Hvad er pointen ved linjen
document.images["imap"].style.cursor = (document.getElementById && !document.all) ? "pointer" : "hand";
Har prøvet bare at skrive
document.images["imap"].style.cursor = "hand";
og det virker ligeså fint. Hvad betyder de to ting som skal opfyldes???

MVH Klejner
Avatar billede Slettet bruger
29. august 2002 - 14:14 #22
Ja, det kan du så godt slette nu. Det var bare fordi, jeg troede, at man kunne sætte en hånd på i NS7 også. Og i NS7 hedder hånd-cursoren ikke "hand", men "pointer".
Avatar billede 7th Praktikant
04. september 2002 - 15:37 #23
Mon ikke du skulle lukke spørgsmålet nu og give phoenixv hans velfortjente points ?
Avatar billede klejner Nybegynder
05. september 2002 - 00:50 #24
Oooh undskyld min fejl. Her er pointene.
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