Prüfen ob Maustaste gedrückt ist

Hi,

so ganz verstehe ich dein Problem nicht.

Folgendes Codefragment funktioniert bei mir (IE und Non-IE) und zeigt die aktuelle Cursorposition über dem Zielelement an.
Code:
<html>
<head>
<title>Test</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function hMouseMove(objEvt){
  var objMouse = {};
  objMouse.x = (window.event)? (window.event.clientX+objBody.scrollLeft) : objEvt.pageX;
  objMouse.y = (window.event)? (window.event.clientY+objBody.scrollTop) : objEvt.pageY;

  // Falls eine Objekt-Referenz in globaler Variablen gespeichert ist -> Offset in Element ausgeben
  if(objOver!=null){
    document.getElementById("out_id").innerHTML = "(" + (objMouse.x-objOver.offsetLeft) + ", " + (objMouse.y-objOver.offsetTop) + ")";
  }
}

// Speichert die Referenz des Objektes, wenn sich die Maus daraüber befindet,
// sonst null
var objOver = null;

window.onload = function(){
  // Passendes Body-Objekt ermitteln
  if(document.all && !window.opera)
    objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  else
    objBody = document.documentElement;

  document.onmousemove = function(evt){
    hMouseMove(evt);
  }

  var objTmp = document.getElementById("overDiv");

  if(objTmp.addEventListener){
    // Referenz des Objektes an globale Variable zuweisen
    objTmp.addEventListener("mouseover", function(){ objOver=objTmp;}, false);
    // null an globale Variable zuweisen
    objTmp.addEventListener("mouseout", function(){ objOver=null;}, false);
  }else if(objTmp.attachEvent){
    // Referenz des Objektes an globale Variable zuweisen
    objTmp.attachEvent("onmouseover", function(){objOver=objTmp;});
    // null an globale Variable zuweisen
    objTmp.attachEvent("onmouseout", function(){objOver=null;});
  }
}
 //-->
</script>
</head>
<body>
  <div id="out_id">&nbsp;</div>
  <div id="overDiv" style="width: 200px; height: 200px; background: #369; cursor: default;">&nbsp;</div>
</body>
</html>
Ciao
Quaese
 
Möchte hier mal von der Seitenlinie den Ball ins Spiel einwerfen, dass mein Code-Beispiel browserübergreifend (FF, Google-Chrome, IE, Opera, Safari) funktioniert ;-)

Oder stand ich hier zu nächtlicher Stunde ohne Flutlicht alleine auf'm Platz, und hab die Spielregeln nicht richtig gelesen? :-(
 
Zuletzt bearbeitet:
Hi,

es funktioniert browserübergreifend, gibt aber jeweils immer nur die Koordinaten relativ zum Viewport an - Scrollen unberücksichtigt.

Ciao
Quaese
 
Zurück