Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Javascript roll-over problem

Af Elitebruger LaB | 17-07-2004 18:08 | 1081 visninger | 7 svar, hop til seneste
hejsa alle - forsøger at lave et image-rollover system, hvor et billede automatisk vises, når markøren køres over et specielt stykke tekst ... mit script virker fint i IE og Opera, men ikke Mozilla - nogen JS hajer, der vil kigge på det, og fortælle mig hvad der er galt... Ifølge JS console i Firefox, ligger problem i linje 57,58... altså " x = (document.layers) ? e.pageX : event.clientX y = (document.layers) ? e.pageY : event.clientY " anyway - her følger koden... <head> <script language=javaScript> <!-- Beginning of JavaScript - var x,y,a,b,e,timer,thisbox,isbox,urlimg var posleftvorher var box if (document.layers) { var left_pos=".left="; var top_pos=".top="; var doc="document."; var stl=""; } if (document.all) { var left_pos=".pixelLeft="; var top_pos=".pixelTop="; var doc=""; var stl=".style"; } function openbox(thisbox) { isbox = thisbox if(document.layers) { box = document.popupbox box.visibility="visible" document.popupbox.document.write("<img src='"+thisbox+"'>") document.popupbox.document.close() document.popupbox.left=x+25 document.popupbox.top=y } if(document.all) { box = document.all.popupbox.style box.visibility="visible" popupbox.innerHTML="<img src='"+thisbox+"'>" eval(doc+"popupbox"+stl+left_pos+(x+25)) eval(doc+"popupbox"+stl+top_pos+y) timer=setTimeout("openbox(isbox)",50) } } function closebox(){ clearTimeout(timer) box.visibility="HIDDEN" } function handlerMM(e){ var x,y,e x = (document.layers) ? e.pageX : event.clientX y = (document.layers) ? e.pageY : event.clientY } if (document.layers){ document.captureEvents(Event.MOUSEMOVE); } document.onmousemove = handlerMM; // - End of JavaScript - --> </script> <STYLE> .mainstyle { position: absolute; font-family:Verdana; color:dddddd; font-size:40px; } A { color:dddddd; text-decoration:none; } </STYLE> </head> <body> <div id="main" class="mainstyle"> <a href="#" onMouseOver="openbox('SE/A3618.gif')" onMouseOut="closebox()">rollover test.</a></div> <div id="popupbox" style="position:absolute"></div> </body>
--
http://www.nerdy.dk[...] -- professionel unlock og opgradering af mobiltelefoner.
#1
Muncken
Semibruger
18-07-2004 12:50

Rapporter til Admin
Det var dog en besværlig måde at gøre det på.
--
Jeg er faktisk syg nok, hvis det er rigtigt!
#2
LaB
Elitebruger
18-07-2004 14:15

Rapporter til Admin
#1 det er da utroligt så klog du er - hvis du har en bedre måde, så spyt dog ud med det!
--
http://www.nerdy.dk[...] -- professionel unlock og opgradering af mobiltelefoner.
#3
MadMoose
Amatør
18-07-2004 17:34

Rapporter til Admin
Her er en forholdsvis simpel måde at gøre det på: http://www.madmoose.dk[...] Virker i IE, Moz og Opera (jeg har kun testet de nyeste versioner) Hvis der kun skal være en popup fremme ad gangen er det selvfølgelig ikke nødvendig at smidde img-id'et rundt i funktionerne, og hvis billedet kun skal dukke op ét sted kan det også hardcodes et andet sted. Udover at din script var overmåde kompliceret, så vil jeg lige informere dig om at det nok er en god idé at holde sig fra document.layers (som er en gammel NS4.x fadæse) og document.all (som er en IE skumler). Firefox implementerer nemlig ingen af delene. Istedet kan du benytte document.getElementById eller document.getElementsByName (der giver en liste).
--
madmoose.dk
#4
LaB
Elitebruger
19-07-2004 09:42

Rapporter til Admin
mange tak, madmoose - vil prøve at kigge på det. Som du kan se, er min js viden meget forældet, da jeg ikke har brugt det i årevis... har dog besluttet mig for at gå igang med lidt webdesign igen, og kan da nu se at jeg tringer til en del opfriskning :-)
--
http://www.nerdy.dk[...] -- professionel unlock og opgradering af mobiltelefoner.
#5
LaB
Elitebruger
19-07-2004 10:31

Rapporter til Admin
eneste problem er, at dit scriptforslag blot er til et statisk billede - det mit script gør, er at lave en flydende billedeboks ved siden af markøren, sålænge denne er over billedet - det er den effekt jeg efterlyser. Jeg kan se du definerer x og y statisk når du kalder funktionen - er der en måde, hvorpå disse kan defineres alt efter hvor markøren befinder sig?
--
http://www.nerdy.dk[...] -- professionel unlock og opgradering af mobiltelefoner.
#6
MadMoose
Amatør
19-07-2004 20:01

Rapporter til Admin
Selvfølgelig ;-) http://www.madmoose.dk[...] Bemærk ændringen af onmouseover til onmousemove, der bliver udført hver gang musen bevæges over et element.
--
madmoose.dk
#7
LaB
Elitebruger
20-07-2004 19:18

Rapporter til Admin
aaah - very nice! mange tak for hjælpen.
--
http://www.nerdy.dk[...] -- professionel unlock og opgradering af mobiltelefoner.

Opret svar til indlægget: Javascript roll-over problem

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning