Avatar billede salmony Nybegynder
16. juni 2006 - 17:08 Der er 5 kommentarer og
1 løsning

Musens koordinater på en side - altså inden for body

Hvordan programmerer jeg en funktion (i JavaScript), som kan angive musens koordinater overalt på en side og ikke bare inden for det objekt, man klikker på, når funktionen skal udføres?

Ville være perfekt, hvis det virker både i Internet Explorer og Firefox :)
Avatar billede mclemens Nybegynder
16. juni 2006 - 21:06 #1
Noget i denne stil?


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
<!--

var dmcy=0;
var dmcx=0;

var IE=((document.all) && (navigator.userAgent.indexOf('Opera')== -1))?true:false;
if(!IE)document.captureEvents(Event.mousemove)

document.onmousemove=function (e){
if(IE){
  dmcst=(tmenu=document.documentElement.scrollTop)?tmenu:document.body.scrollTop;
  dmcsl=(lmenu=document.documentElement.scrollLeft)?tmenu:document.body.scrollLeft;
  dmcy=event.clientY+dmcst;
  dmcx=event.clientX+dmcsl;
}else{
  dmcst=0;
  dmcsl=0;
  dmcy=e.pageY;
  dmcx=e.pageX;
}

document.getElementById("x").innerHTML=dmcx;
document.getElementById("y").innerHTML=dmcy;
}

//-->
</script>


</head>


<body>
<br><br><br><br><br><br><br><br>
<div id="x"></div>
<div id="y"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</body></html>
Avatar billede mclemens Nybegynder
17. juni 2006 - 01:45 #2
... der var lidt overflødig kode i scriptet ...
- man er jo blevet bedre til at rydde op efter sig :P

<script type="text/javascript">
<!--

var dmcy=0;var dmcx=0;

var IE=((document.all) && (navigator.userAgent.indexOf('Opera')== -1))?true:false;
if(!IE)document.captureEvents(Event.mousemove)

document.onmousemove=function (e){
if(IE){
  dmcst=(tmenu=document.documentElement.scrollTop)?tmenu:document.body.scrollTop;
  dmcsl=(lmenu=document.documentElement.scrollLeft)?tmenu:document.body.scrollLeft;
  dmcy=event.clientY+dmcst;dmcx=event.clientX+dmcsl;
}else{dmcy=e.pageY;dmcx=e.pageX;}

document.getElementById("x").innerHTML=dmcx;
document.getElementById("y").innerHTML=dmcy;
}

//-->
</script>


document.getElementById("x").innerHTML=dmcx;
document.getElementById("y").innerHTML=dmcy;

^ Slet evt. de to linjer ...
med det script er x position altid tilgængelig
via variablen dmcx og y positionen via. dmcy ...


Scriptet tager forbehold for om IE er i quirks eller ej
  dmcst=(tmenu=document.documentElement.scrollTop)?tmenu:document.body.scrollTop;
  dmcsl=(lmenu=document.documentElement.scrollLeft)?tmenu:document.body.scrollLeft;

... IE returnerer ikke musens placering på samme måde som FF
derfor var jeg nødt til at måle på scrollTop og scrollLeft også ...
Avatar billede salmony Nybegynder
18. juni 2006 - 15:06 #3
Alle tiders =)
Avatar billede salmony Nybegynder
18. juni 2006 - 15:07 #4
Jeg skulle blot bruge musens koordinater ved et klik, men dit stuff hjalp mig. Takker :)
Avatar billede mclemens Nybegynder
18. juni 2006 - 15:08 #5
Super :o)
Avatar billede mclemens Nybegynder
18. juni 2006 - 15:14 #6
Du har sikkert fundet ud af det, men ellers så:
<b onclick="alert('x: '+dmcx+'\ny: '+dmcy);">Test</b>
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