Mousezeiger-Image

Ja, das stimmt. Doch ich möchte, das zu oldx und oldy ein anderer Wert inkrementiert wird. Also, das sich das zweite Bild dem Mousezeiger langsammer nähert als das Erste.
Würde das gehen? Wenn ja, wie?

Danke im Voraus.
mfg. Marko
 
Du müsstest halt für jedes Bild eine Funktion wie placePic() machen. Die Geschwindigkeit kannst du auf zwei Arten regeln:

1.) Wert bei setInterval (z.Zt. 100)
2.) Wert vor x-oldx bzw. y-oldy (z.Zt. 0.6)

oldx/y habe nichts mit der Geschwindigkeit zu tun, da sie nur die alten Werte zwischenspeichern du brächtest also auch noch ein paar andere Speichervariablen.
 
Ich habs nun so versucht: unten. Doch Bild1 sitzt in der Ecke rum, Bild2 bewegt sich wie gewollt. Woran liegt das? Was mache ich falsch?

HTML:
<img id="mousepic" src="Ball.gif" style="position:absolute;top:0px;left:0px" />
<img id="mousepic2" src="Ball.gif" style="position:absolute;top:0px;left:0px" />
 
 <script type="text/javascript"><!--
 
 	var pic=document.getElementById('mousepic'), pic2=document.getElementById('mousepic2'), x=y=oldx=oldy=0;
 
 	document.onmousemove = mouse; 
 	setInterval('placePic()',100);
 
 	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;
 	}
 	
 	function placePic() {
 		if(!!pic) {
 			pic.style.left = Math.round( oldx += .6 * (x-oldx) ) + 20; 
 			pic.style.top = Math.round( oldy += .6 * (y-oldy) ) + 25;
 		}
 	}
	
	function placePic() {
 		if(!!pic2) {
 			pic2.style.left = Math.round( oldx += .3 * (x-oldx) ) + 50; 
 			pic2.style.top = Math.round( oldy += .3 * (y-oldy) ) + 60;
 		}
 	}
 
 //--></script>
 
Hehe, nur weil du die Variablen oldy und oldx jetzt zwei mal initialisierst werden es auch nicht zwei verschiedene Paare Variablen. ;) Du musst also oldy2 und oldx2 einführen aber komm nicht auf die Idee auch noch x2 und y2 zu initialisiern!

Auch würde ich die zweite placePic()-Funktion placePic2() nennen und sie mit setInterval('placePic2()',100) auch mal starten. Wäre doch gut, oder? :-)

Woohoo mein 800er Post!!
 
Zuletzt bearbeitet:
Danke dir. Klappt nun.

Bzgl. Erledigt/Nicht erledigt: Vorhin habe ich den Tread als Erledigt markiert, doch dann hab ich das gleich wieder geendert, da ich noch eine Frage hatte.

Auf jeden Fall: Danke @ you.
mfg. Marko
 
Zurück