Toon posts:

[js] Window.onmousemove

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil simpelweg de positie van de muis weten.
daar zijn genoeg scripts over te vinden.

één probleem,
ik wil ook de muispositie weten als men met de muis buiten het browser-scherm gaat.
als de muis buiten de document staat dan werkt document.onmousemove niet.
window.event.clientX en window.event.clientY werken wel over het hele scherm.

ik zat te denken aan een loop die de positie berekent, maar dat geeft een error omdat er geen event is.

is er een manier om dit toch met een loop te laten werken, of op een andere manier de positie te verkrijgen?

greets dexus

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Het beste zou het kunnen als je zelf een event kunt triggeren, en IE kan dat:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
  <head>
    <script type="text/javascript">
      function doe()
      {
        document.fireEvent("onmousemove");
        setTimeout("doe()", 50);
      }

      document.onmousemove = show;

      function show()
      {
        document.getElementById("blaat").innerHTML = event.clientY;
      }
    </script>
  </head>
  <body onload="doe()">
    <div id="blaat"></div>
    
  </body>
</html>

Verwijderd

Topicstarter
ik was niet bekent met die fireEvent-functie.
maar dit is persies wat ik nodig had.
dat IE only kan ik ook wel mee leven :*)

bedankt dus _/-\o_

Verwijderd

Topicstarter
met jou code heb ik nu een scherm draggable gemaakt.
het scherm kan je dus gewoon verplaatsen.
met deze code:
code:
1
2
3
4
5
6
7
document.onmousemove = show;
document.getElementById('handle').onmousedown = function() {
    dexus = setInterval('document.fireEvent("onmousemove")',30);
};
document.getElementById('handle').onmouseup = function() {
    clearInterval(dexus);
};

omdat het ook mogelijk is dat men de muis pas loslaat buiten het scherm, wordt de onmouseup soms niet uitgevoert en blijft het scherm dus 'plakken' aan de muis.

daarom heb ik een manier nodig om ook onmousup buiten het browserscherm te krijgen.

ik had het ook geprobeert door het met onmouseout te triggeren, maar dan stopt het dus als je de muis te snel beweegt.
of bij onmousemove controleren of er iets ingedrukt is, if(event.button != 1) {clearInterval(dexus);}, maar dat werkt ook al niet :r

is het mogelijk om daar iets op te verzinnen?
of is het eigenlijk wel mogelijk?

[ Voor 12% gewijzigd door Verwijderd op 22-05-2005 19:04 ]