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?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.