20. januar 2008 - 18:40Der er
7 kommentarer og 1 løsning
Inforude ved mouseover
Hej
Jeg skal have det sådan at når man kører musen hen over et navn, så viser den oplysninger om personen i et lille vindue der fremkommer ved musen - div layer.
Jeg kan sagens hente oplysninger osv - evt. også ved hjælp af AJAX.
Men hvordan er det nu lige at man får div layeren til at komme præcis ved musen når man kører den over navnet?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Du kan indsætte følgende kode til at finde musens koordinater: -------------------------------------------------------------- <script type="text/javascript" language="javascript"> var X=Y=0,IE=document.all?true:false; if(!IE)document.captureEvents(Event.MOUSEMOVE) function getMouseXY(e){ if(IE){ X=event.clientX+document.body.scrollLeft; Y=event.clientY+document.body.scrollTop; }else{ X=e.pageX; Y=e.pageY; } if(X)X=0; if(Y)Y=0; return true } document.onmousemove=getMouseXY; </script> -------------------------------------------------------------- Så kan du bare bruge variablerne X og Y, når div'en skal placeres. F.eks.:
Hov, der var lige en fejl: ----------------------------------------------------- <script type="text/javascript" language="javascript"> var X=Y=0,IE=document.all?true:false; if(!IE)document.captureEvents(Event.MOUSEMOVE) function getMouseXY(e){ if(IE){ X=event.clientX+document.body.scrollLeft; Y=event.clientY+document.body.scrollTop; }else{ X=e.pageX; Y=e.pageY; } if(X<0)X=0; if(Y<0)Y=0; return true } document.onmousemove=getMouseXY; </script> ----------------------------------------------------- Eller mere kompakt: ----------------------------------------------------- <script type="text/javascript" language="javascript"> var X=Y=0,IE=document.all?true:false;if(!IE)document.captureEvents(Event.MOUSEMOVE);function getMouseXY(e){if(IE){X=event.clientX+document.body.scrollLeft;Y=event.clientY+document.body.scrollTop}else{X=e.pageX;Y=e.pageY;};if(X<0)X=0;if(Y<0)Y=0;return true};document.onmousemove=getMouseXY; </script>
Hmmm jeg er ikke 100% med på hvordan man benytter dette... Skal også lige høre om det både virker i IE, Firefox og Safari?
Mine umiddelbare spørgsmål, hvis det virker i dem er: 1: Hvordan får man det til at komme når man kører musen over en tekst? 2: Hvordan styrer man størrelsen på den?
Det burde fungere i de fleste browsere. Her er et fuldt fungerende eksempel: -------------------------------------------------------------------- <html> <head> <title>Eksempel</title> <script type="text/javascript" language="javascript"> var X=Y=0,IE=document.all?true:false;if(!IE)document.captureEvents(Event.MOUSEMOVE);function getMouseXY(e){if(IE){X=event.clientX+document.body.scrollLeft;Y=event.clientY+document.body.scrollTop}else{X=e.pageX;Y=e.pageY;};if(X<0)X=0;if(Y<0)Y=0;return true};document.onmousemove=getMouseXY; function ToggleDisplay(o){o.style.display=o.style.display=="inline"?"none":"inline"} function ShowInfo(o){ o=document.getElementById(o); ToggleDisplay(o); o.style.top=Y+"px"; o.style.left=X+"px"; } </script> <style type="text/css"> .info{ display:none; position:absolute; width:400px; margin:10px; background-color:#fff; border:1px solid #000; } </style> </head> <body>
Og koden er i øvrigt testet i Internet Explorer, Firefox, Safari, Opera, Netscape, Flock og Seamonkey (dem jeg lige havde liggende), og den virker fint i alle. =)
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.