Avatar billede thomas_b Nybegynder
02. januar 2009 - 03:19 Der er 6 kommentarer og
1 løsning

Mouse location ?

Hej Eksperter...

Jeg har dette script men ønsker lavet lidt om i det...
Vil gerne have så den kun måler inden for et bestemt div-tag evt. med et ID ??
Kan dette lade sig gøre, relativt næmt...?

---------------------------------------------------

<form name="Show">
<input type="text" name="MouseX" value="0" size="4"> X<br>
<input type="text" name="MouseY" value="0" size="4"> Y<br>
</form>
<script language="JavaScript1.2">

var IE = document.all?true:false

if (!IE) document.captureEvents(Event.MOUSEMOVE)

document.onmousemove = getMouseXY;

var tempX = 0
var tempY = 0

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}
  document.Show.MouseX.value = tempX
  document.Show.MouseY.value = tempY
  return true
}

</script>

---------------------------------------------------
Avatar billede tjens Nybegynder
03. januar 2009 - 00:08 #1
<html>
<head>
<title>Show mouse position</title>
<script type="text/javascript">

function showit(e) {
    if (!document.all)     {
        document.Show.MouseX.value = e.pageX;
        document.Show.MouseY.value = e.pageY;
    } else    {
        document.Show.MouseX.value = event.x;
        document.Show.MouseY.value = event.y;
    }
}

function init() {
    var oDiv = document.getElementById("testdiv");
    if (!document.all)    
        oDiv.addEventListener("mousemove",showit,false);   
    else
        oDiv.attachEvent("onmousemove", showit);
}
</script>
</head>

<body onload="init()">
<form name="Show">
<input type="text" name="MouseX" value="0" size="4"> X<br>
<input type="text" name="MouseY" value="0" size="4"> Y<br>
</form>

<div id ="testdiv" style="position: absolute; left: 100; top: 100; background-color: palegreen; padding: 10px;" >
The DIV with onMouseOver events active
</div>
</body>
</html>
Avatar billede thomas_b Nybegynder
03. januar 2009 - 01:10 #2
1000 takker... :)
Avatar billede thomas_b Nybegynder
03. januar 2009 - 14:07 #3
Der er opstået et lille problem :)
Avatar billede thomas_b Nybegynder
03. januar 2009 - 14:12 #4
lige meget :) har ordnet det :)
Avatar billede thomas_b Nybegynder
03. januar 2009 - 23:15 #5
Hmm....

Hvorfor giver dette en fejl... :)

function init() {
    var oDiv = document.getElementById("markmouse");
    if (!document.all)
    aaben('mousemove');
        oDiv.addEventListener("onmousedown",showit,false);
    else
    aaben('mousemove');
        oDiv.attachEvent("onmousedown", showit);
}

Har prøvet lidt af hverd... priblemet er lidt at den skal åbne aaben('mousemove'); inden den afvikler "showit"...

Og hvis den så også kan lave den samme funktion bare med luk('mousemove');

kan dette lade sig gøre... :)
Avatar billede tjens Nybegynder
04. januar 2009 - 00:15 #6
Du mangler { } til afgrænsning af flere statements på if  og else:

function init() {
    var oDiv = document.getElementById("markmouse");
    if (!document.all) {
        aaben('mousemove');
        oDiv.addEventListener("onmousedown",showit,false);
    } else {
        aaben('mousemove');
        oDiv.attachEvent("onmousedown", showit);
    }
}


Men kan du ikke nøjes med det statement 1 gang:

function init() {
    aaben('mousemove');
    var oDiv = document.getElementById("markmouse");
    if (!document.all)
        oDiv.addEventListener("onmousedown",showit,false);
    else
        oDiv.attachEvent("onmousedown", showit);
}
Avatar billede tjens Nybegynder
04. januar 2009 - 00:21 #7
Måske misforstod jeg hvornår aaben('mousemove') skal kaldes.

init() kører jo kun 1 gang.

Måske kan du bare skrive linien ind som første linie i showit?

Forklar lige nærmere.
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