You are not logged in.

  • Login

1

Sunday, August 8th 2010, 1:44pm

objekt bewegen lassen. tut dies aber nicht

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
    <head>
    </head>
    <body>
        
        <script language="javascript" type="text/javascript">
var i = 1;
            function move(elementid,  pixelx, pixely, startx, starty, stopx, stopy)
            {
                
                if(i == 1)
                {document.getElementById(elementid).style.left = startx;
                document.getElementById(elementid).style.top = starty;}
                i++;
                if(document.getElementById(elementid).offsetLeft <= stopx)
                {document.getElementById(elementid).style.left = document.getElementById(elementid).offsetLeft + pixelx;}
                if(document.getElementById(elementid).offsetTop <= stopy)
                {document.getElementById(elementid).style.top = document.getElementById(elementid).offsetTop + pixely;}
                
            }
        </script>   
        
        <div id="text" style="position:absolute; top:-900; left:-900">
            <p>hallo</p>
        </div>
        <input type="button" value="runter" onclick="window.setInterval('move(text, 3, 3, 100, 100, 200, 200)', 10)">
        
    </body>
</html>


der obige code soll einfach einen text jede 10 millesekunden um 3 px in x und y bewegen
davor sollte er beim ersten mal den text auf eine bestimmte position setzen.

das problem ist aber, dass beim klicken auf den button nichts passiert.

findet einer den fehler?

2

Sunday, August 8th 2010, 2:33pm

Hi,

ändere die Zeil 26 wie folgt ab:

HTML Code

1
<input type="button" value="runter" onclick="window.setInterval(function() { move('text', 3, 3, 100, 100, 200, 200) }, 10)">


Siehe zu dem Thema auch: Javascript und Closures - http://aktuell.de.selfhtml.org/artikel/j…ation/#closures

3

Sunday, August 8th 2010, 2:41pm

wtf

wiso muss man ne funktion in ner function machen damits kklappt?

ps es klappt

UPDATE
oh drfy hasch ja schon link geschrieben^^^^

4

Sunday, August 8th 2010, 2:56pm

Naja, du könntest es auch so machen:

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head></head>
<body>
	<script language="javascript" type="text/javascript">
	var i = 1;
	var move = function (elementid,  pixelx, pixely, startx, starty, stopx, stopy)
	{
		if(i == 1)
	    {
		    document.getElementById(elementid).style.left = startx;
	        document.getElementById(elementid).style.top = starty;
	    }
	    i++;
	    if(document.getElementById(elementid).offsetLeft <= stopx)
	    {
	        document.getElementById(elementid).style.left = document.getElementById(elementid).offsetLeft + pixelx;
	    }
	    if(document.getElementById(elementid).offsetTop <= stopy)
	    {
	    	document.getElementById(elementid).style.top = document.getElementById(elementid).offsetTop + pixely;}
	    }
	</script>   
    <div id="text" style="position:absolute; top:-900; left:-900">
    	<p>hallo</p>
    </div>
    <input type="button" value="runter" onclick="window.setInterval('move(\'text\', 3, 3, 100, 100, 200, 200)', 10)">
</body>
</html>

Similar threads

Social bookmarks