Avatar billede madd Nybegynder
16. juni 2002 - 01:57 Der er 11 kommentarer og
1 løsning

Fange X og Y koordinater

Hej.

Jeg har flg. script som fanger X og Y i henholdsvis IE og NS.

if (document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=mtrack;

function mtrack(e) {
  var text = 'Coordinates: ';
  if (document.layers) text += e.pageX + ',' + e.pageY
  else text += event.x + ',' + event.y;
  window.defaultStatus = text;
}


Problemet ligger i, at hvis siden er længere en scroolbaren (eks; 2000 pixels) og man bladrer ned af opfører X og Y sig som var det eet skærmbillede uden scrool. Dvs. at selvom du er scroolet i bund til 2000 px, viser Y eks. 600.

Hvordan kan man nemmest finde den "rigtige" X og Y værdi på HELE dokumentet og ikke bare det som browseren viser.

/Mattias
Avatar billede jakoba Nybegynder
16. juni 2002 - 02:47 #1
denne gør præcis det samme og det ser ud til at virke: http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp57415.html
eneste forskel jeg kan se er at din går galt for Ns6 (som ikke har document.layers)

prøv at checke en extra gang.

mvh JakobA
Avatar billede jakoba Nybegynder
16. juni 2002 - 02:51 #2
Nåe nej, en anden forskel er i den onmousmove du sætter.
Ns vil have window.onMouseMove=mtrack;
Avatar billede fireblast Nybegynder
16. juni 2002 - 02:57 #3
<SCRIPT>
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onMouseMove=mtrack;


function mtrack(e) {
  var text = 'Coordinates: ';
  if (document.layers) text += e.pageX + ',' + e.pageY;
  else text += Math.round(event.clientX + document.body.scrollLeft) + ',' + Math.round(event.clientY + document.body.scrollTop);
  window.defaultStatus = text;
}
</SCRIPT>


^^det skulle være det:)
Håber det ka bruges.
Mvh.
Anders
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:03 #4
doh...ska lige tilføjes at der ska addes: window.onMouseMove=mtrack;
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:06 #5
og for lige at få den til at virker helt 100%(også med ns6):

<SCRIPT>
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=mtrack;
window.onMouseMove=mtrack;


function mtrack(e) {
  var text = 'Coordinates: ';
  if (!document.all) text += e.pageX + ',' + e.pageY;
  else text += Math.round(event.clientX + document.body.scrollLeft) + ',' + Math.round(event.clientY + document.body.scrollTop);
  window.defaultStatus = text;
}
</SCRIPT>

^^Den færdige kode....gennem rettet..
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:08 #6
jacoba: nu har jeg ikke selv mulighed for at checke med NS(4/6) men, så vidt jeg ved har hverken NS4 eller NS6 document.all, så man ka vel bare lave en if(!document.all), da både 4 og 6 bruger den samme måde at aflæse musen på...
Avatar billede jakoba Nybegynder
16. juni 2002 - 14:19 #7
Næe desværre, for NS4 og NS6 bruger ikke præcis samme måde, der er et par forskelle, fx i hvordan handleren sættes.
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:24 #8
PÅ dit eksempel, har du skrevet sådan:
Ymouse=(ns4||ns6)?evnt.pageY:event.y;
Xmouse=(ns4||ns6)?evnt.pageX:event.x;

Her sætter du da de 2 variabler ens i forhold til NS4 og NS6..?
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:24 #9
doooh!
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:25 #10
min fejl..:\...
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:29 #11
<SCRIPT>
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=mtrack;
window.onMouseMove=mtrack;
var NS4=(document.layers)?true:false;
var NS6=(!document.layers && !document.all)?true:false;


function mtrack(e) {
myXpos=(NS4||NS6)?e.pageX:event.x;
myYpos=(NS4||NS6)?e.pageY:event.y;
  var text = 'Coordinates: ';
  if (!document.all) text += myXpos + ',' + myYpos;
  else text += Math.round(event.clientX + document.body.scrollLeft) + ',' + Math.round(event.clientY + document.body.scrollTop);
  window.defaultStatus = text;
}
</SCRIPT>
Avatar billede fireblast Nybegynder
16. juni 2002 - 14:29 #12
^^det burde være der så..
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