X und Y

hmm konnte dazu nichts finden...
Gibt es eine Möglichkeit der Funktion noch etwas zu übergeben?

also sowas wie
document.getElementById("foo").onclick=bar("foobar");
 
Ich will die obere Linke Ecke eines <div>'s an die Position des Mauszeigers versetzen,
also eine Funktion z.b.

Code:
function PlaceDIV(div_id){
document.getElementById(div_id).style.display="block";
}

nun fehlt noch das es an die Mauszieger Position geschoben wird, also fehlt noch an Mauszeiger-Position schieben, also gibt es eine Möglichkeit der Event-Aufruf Funktion(in deinem fall Mouse(e); einen zweiten Parameter zu übergeben? bzw wie definiert man diesen in der Event Definierung(document.getElementById("test").onclick=...)?
 
Also langsam reicht's mir: Das siehst du doch wirklich aus meinem Beispiel, wenn du nur die geringste Ahnung von Programmierung hättest.

Du musst die beiden Codeteile trennen. Einer sorgt dafür, dass die Mausposition ständig in den Variablen "x" und "y" gespeichert ist. Das wäre dieser hier:
Code:
var x=y=0; //initialisiert die Variablen "x" und "y" global, so dass sie für jede Funktion existieren
document.onmousemove = mouse; //sorgt dafür, dass bei Änderung der Mausposition die Variablen x und y durch die Funktion "mouse()" aktualliesiert werden
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;
}
Der andere Codeteil postioniert dein div und greift dabei auf die Variablenwerte von "x" und "y" zurück. Das wäre dann so in der Art:
Code:
function placeDiv(strId) {
    if ( div=document.getElementById(strId) ) { //prüft, ob ein div mit id gleich Inhalt der Variablen "strId" existiert und setzt eine refernz mit namen pic, wenn ja
        div.style.display = "block";
        div.style.left = x +"px"; //setzt das div an die x-Position der Maus (in der Variablen "x" durch die Funktion "mouse()" gespeichert)
        div.style.top = y +"px"; //setzt das div an die y-Position der Maus (in der Variablen "y" durch die Funktion "mouse()" gespeichert)
    }
}
Die ganze schose benutzt du dann über die üblichen Eventdefinitionen:
HTML:
<div onlick="placeDiv('Ziel')">Klick mich</div>
<div id="Ziel" style="position:absolute;top:0px;left:0px;display:none;">Ich gehe zur Mausposition, wenn du auf "Klick mich" oben klickst!</div>
oder
HTML:
<script type="text/javascript">document.getElementById('Ausloeser').onclick = new Function('placePic("Ziel")')</script>

<div id="Ausloeser">Klick mich</div>
<div id="Ziel" style="position:absolute;top:0px;left:0px;display:none;">Ich gehe zur Mausposition, wenn du auf "Klick mich" oben klickst!</div>

Habe noch Kommentare für Programmierleghasteniker eingefügt.
 
Zuletzt bearbeitet:
Bei dir berechnet er aber auch immer wieder die Position neu und kann so deswegen einfach immer wieder die Bewegungsfunktion aufrufen, ich will aber nur einmal die Position ändern
 
Anders funktioniert es nicht in allen Browsern. Du wirst das bischen Performance wohl Opfern, oder in der placeDiv()-Funktion nachher den document.onmousemove-Event leeren müssen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück