Frage zu Mauseigenschaften

BeachBoy

Mitglied
hallo,
ich habe mal eine Frage zu den Mauseigenschaften.
Und zwar bewege ich Objekte mit der Maus. Jetzt möchte ich, dass beim Mausknopf runter drücken die Position des Mauszeigers gespeichert wird. Habe es schon mit
Code:
ebene.setAttribute("onmousedown",zeige);
probiert (zeige ist ne Funktion wo die Position gespeichert wird), allerdings speichert er nicht nur die erste Position, sondern alle Positionen wenn ich die Maus bewege, das heißt nur die letzte (da er die anderen überschreibt).
Mit onclick muss ich die Maustaste erst wieder loslassen, bevor die Position gespeichert wird. So will ich das auch nicht.
Habe bislang noch keine Lösung gefunden. Kann mir jemand sagen, ob es da noch eine Mauseigenschaft gibt, die ich nicht kenne? Muss doch irgendwie gehen.

MfG,
Sebastian
 
Folgender js-Code liest ständig die Mausposition aus und weist sie den Variablen x und y zu:
Code:
document.onmousemove = mouse;
    var x=y=0;
    function mouse(e){
    	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
    	y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;	
    }
Nun musst du nurnoch onMouseDown eine Funktion aufrufen, die die Werte meiner Variablen x und y zwei anderen Variablen zuweist, in denen du besagte >>Postition der Maus zum Zeitpunkt des Klicks<< speichern willst.
 
Zuletzt bearbeitet:
habe schon verstanden wie du es meinst, aber weiß nicht wirklich wie ich es einbauen soll. Habe die funktion zur Ermittlung des Mauszeigers etwas ander. So sieht mein Quelltext aus. Würde mich freuen, wenn du es mir genauer sagen könntest.
Code:
document.onmousemove = machWas;

function machWas()
{
   mausX = (document.captureEvents)?arguments[0].pageX:event.x;
   mausY = (document.captureEvents)?arguments[0].pageY:event.y;
}


function start()
{
   for (var i=1; i<=feld.length; i++)
   {
      var ebene = document.createElement("div");
      ebene.setAttribute("id","eb"+i);

      if(window.opera || window.netscape)
      {
         ebene.setAttribute("onmousedown","zeige('eb" + i +"')");
         ebene.setAttribute("onmouseup","halt('eb" + i + "')");
      }
      else
      {
         ebene.setAttribute("onmousedown",zeige);
         ebene.setAttribute("onmouseup",halt);
      }

      document.getElementsByTagName("body")[0].appendChild(ebene);
   }
}


function zeige()
{

   if(this.id || arguments[0])
   {
      var ebID = (arguments[0])?arguments[0]:this.id;
      document.getElementById(ebID).style.left = mausX -15 + "px";
      document.getElementById(ebID).style.top = mausY -15 + "px";

      var Xtimer = "zeige('" + ebID + "')";    /*das ganze als string*/
      timer = window.setTimeout(Xtimer,1);
   }

}


function halt()
{
   window.clearTimeout(timer);
}

MfG,
Sebastian
 
Zuletzt bearbeitet:
was ich noch dazu sagen sollte, ich möchte die Objekte mit den ids eb+i verschieben können, aber beim Anklicken der ebs soll die Mausposition gespeichert werden.
Denke so dürfe es verständlicher sein was ich will.

Sebastian
 
Habe es soeben nochmal ausprobiert.

con-f-use hat gesagt.:
Nun musst du nurnoch onMouseDown eine Funktion aufrufen, die die Werte meiner Variablen x und y zwei anderen Variablen zuweist, in denen du besagte >>Postition der Maus zum Zeitpunkt des Klicks<< speichern willst.
Dort tritt schon mein Problem auf, und zwar beim speichern dieser Variablen beim onmousedown. Habe die Variablen gespeichert, aber er überschreibt dieses solange mit der aktuellen Mauszeigerposition, bis ich den Mauszeiger wieder loslasse. Wie bekomme ich nur die Position, die ich beim Runterdrücken des Mauszeiger gerade habe?
Bitte um genauere Hilfe!

MfG,
Sebastian
 
Beispiel:
HTML:
<html><head><title>Untitled</title>
   
   <script type="text/javascript"><!--
   var x=y=mx=my=0;
   document.onmousemove = function mouse(e){
   	   x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
   	   y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;	
   }
   //--></script>
   
   </head><body>
   
   <div onMousedown="mx = x, my = y;">
   	Blubb bla<br />
   	Bei Klick speichere ich die Mausposition<br />
   	bli blo<br />
   </div>
   
   <input type="button" value="Werte ausgeben!" onclick="alert('x-Wert: '+ mx +'\ny-Wert' +my)" />
   
   </body></html>
 
Zuletzt bearbeitet:
Zurück