bewegen
Fredo
- javascript
0 wahsaga0 JürgenB0 Fredo0 Sammy0 Fredo0 wucher wichtel0 wucher wichtel0 Fredo0 Fredo
0 Fredo0 Fredo
Kann mir einer sagen wie ich mit einer Funktion ein BIld bewegen kann?
Bei SELF-HTML steht ja nichts.
move.To oder move.By sind ja nur für Fenster und Koordinatenangaben reichen ja nicht wie z.B. :
document.getElementById("image").pageY = i;
Danke schonmal
MfG Fredo
hi,
Kann mir einer sagen wie ich mit einer Funktion ein BIld bewegen kann?
In dem du die CSS-Eigenschaften, die für seine Positionierung verantwortlich sind, dynamisch per Javascript änderst (bspw. über das style-Objekt).
gruß,
wahsaga
Hallo Fredo,
schau Dir mal http://de.selfhtml.org/javascript/objekte/style.htm an. Du kannst z.B. top und left setzen. Aber die Einheiten nicht vergessen, also XXX.style.top="42px". Evtl. musst Du das Bild noch absolut positionieren.
Gruß, Jürgen
Was ist denn dann hier falsch:
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
alert(a + b); /*nur zum überprüfen*/
var a++;
var b++;
alert(a + b); /*nur zum überprüfen*/
document.getElementById("layer").style.left = 'a' + "px";
document.getElementById("layer").style.left = 'b' + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
var moving = window.setInterval("down()", 10);
}
</script>
}
Was ist denn dann hier falsch:
var a++;
var b++;
document.getElementById("layer").style.left = 'a' + "px";
document.getElementById("layer").style.left = 'b' + "px";
Die Anführungszeichen ---------------------------^-^
a und b sind doch Variablen ....
Gruß, Sammy
Das muss vorher schon was falsch sein.. ich glaub der führt die function gar nicht erst aus.. jedenfalls werden die beiden alert nicht angezeigt :-(
Ich geb euch mal den gesamten Quelltext:
<html>
<head><title>Test</title>
<style type="text/css">
img { position:absolute; }
</style>
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
alert(a + b); /*nur zum überprüfen (wird shcon nicht ausgeführt!?)*/
var a++;
var b++;
alert(a + b); /*nur zum überprüfen*/
document.getElementById("layer").style.left = a + "px";
document.getElementById("layer").style.left = b + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
var moving = window.setInterval("down()", 10);
}
</script>
</head>
<body bgcolor="blue" onload="down()">
<img src="sonne.bmp">
</body></html>
Danke schonmal MfG Fredo
Hallo!
Das muss vorher schon was falsch sein..
In solchen Fällen hilft dir die JavaScript-Konsole deines Vertrauens.
document.getElementById("layer").style.left = a + "px";
Du hast kein Element mit der ID "layer".
document.getElementById("layer").style.left = b + "px";
Warum 2 mal left?
var moving = window.setInterval("down()", 10);
Hier muss das "var" raus; das sollte eine Globalvariable sein
Schau mal in deiner JavaScript-Konsole nach, was da steht und gebe einem Element die ID "layer". Im Firefox findest du die JavaScript-Konsole unter "Extras" -> "Fehler-Konsole". Dort steht, was falsch ist.
ciao, ww
Du hast kein Element mit der ID "layer".
HAb ich auch gerade gesehen^^
Warum 2 mal left?
das zweite sollte top sein
aber es geht immer noch net, wie gesagt a und b sind NaN?!
Hab es jetzt so gemacht:
<script type="text/javascript">
function runter(a, b, i) {
alert( b );
alert( a ); /*nur zum überprüfen*/
var a = a + 1;
var b = b + 1;
alert(a); /*nur zum überprüfen*/
alert(b);
document.getElementsByTagName("img").style.left = a + "px"; document.getElementsByTagNames("img").style.top = b + "px";
i++;
if (i >= 2000) {
window.clearInterval(moving);
}
moving = window.setInterval("runter()", 10);
}
</script>
jetzt stimmen die werte von a,b und i aber
document.getElementsByTagName("img").style.left = a + "px"; has no properties.. wieso??
MfG Fredo
Hallo!
alert(a + b); /*nur zum überprüfen (wird shcon nicht ausgeführt!?)*/
Schmeiße die alerts wieder raus. Wenn die Schleife anfängt zu durchlaufen, dann wirst du damit Probleme bekommen
var a++;
var b++;
Hier das "var" wegmachen
alert(a + b); /*nur zum überprüfen*/
s.o.
document.getElementById("layer").style.left = a + "px";
document.getElementById("layer").style.left = b + "px";
Das eine "left" in "top" umwandeln
Zusammen mit meinem anderen Posting wird es funktionieren.
ciao, ww
Hab ich gemacht:
<script type="text/javascript">
function runter(a, b, i) {
a = a + 1;
b = b + 1;
document.getElementsByTagName("img").style.left = a + "px";
document.getElementsByTagNames("img").style.top = b + "px";
i++;
if (i >= 2000) {
window.clearInterval(moving);
}
moving = window.setInterval("runter(a,b,i)", 10);
}
</script>
klappt trotzdem nicht! warum?
Sorry war der falsche script:
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
a++;
b++;
document.getElementById("layer").style.left = a + "px";
document.getElementById("layer").style.top = b + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
var moving = window.setInterval("down()", 10);
}
</script>
klappt trotzdem nicht! warum?
Hallo!
klappt trotzdem nicht! warum?
Weil du nicht das gemacht hast, was ich dir gesagt habe.
var moving = window.setInterval("down()", 10);
Schmeisse hier das "var" raus. Und poste das nächste mal, ob und welche Fehlermeldungen es in deiner JavaScript-Konsole gibt.
ciao, ww
geht immernoch nicht
bin am verzweifeln....
Hallo!
geht immernoch nicht
bin am verzweifeln....
Ich auch. Wegen Dir!
Poste deinen *kompletten* Quelltext. Dazu die Fehlermeldungen der JavaScript-Konsole.
ciao, ww
Quelltext:
<html>
<head><title>Test</title>
<style type="text/css">
img { position:absolute; }
</style>
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
a++;
b++;
document.getElementById("layer").style.left = a + "px";
document.getElementById("layer").style.top = b + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
moving = window.setInterval("down()", 10);
}
</script>
</head>
<body bgcolor="blue" onload="runter()">
<img src="sonne.bmp">
</body></html>
Fehlermeldung:
Fehler: document.getElementsByTagName("img").style has no properties
Zeile: 14
Quelltext:
<html>
<head><title>Test</title>
<style type="text/css">
img { position:absolute; }
</style>
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
a++;
b++;
document.getElementsByTagName("img").style.left = a + "px";
document.getElementsByTagName("img").style.top = b + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
moving = window.setInterval("down()", 10);
}
</script>
</head>
<body bgcolor="blue" onload="runter()"><img src="sonne.bmp">
</body></html>
Fehlermeldung:
Fehler: document.getElementsByTagName("img").style has no properties
Zeile: 14
so natürlich
Quelltext:
</style>
<script type="text/javascript">
var a = 0;
var b = 0;
var i = 1;
function down() {
a++;
b++;
document.getElementsByTagName("img").style.left = a + "px";
document.getElementsByTagName("img").style.top = b + "px";
i++;
if (i >= 200) {
window.clearInterval(moving);
}
moving = window.setInterval("down()", 10);
}
</script>
Fehlermeldung:
Fehler: document.getElementsByTagName("img").style has no properties
Zeile: 14so natürlich
Habs hingekriegt^^
Danke für die Geduld Wucher Wichtel!!
MfG Fredo
Hallo!
Danke für die Geduld Wucher Wichtel!!
Schon ok :-) Noch ein Tipp: Löse es mit document.getElementById(). Wenn du mehrere Bilder auf einer Seite hast, bekommst du mit deinem Script Probleme.
ciao, ww
Hab ich auch gemacht^^
Danke trotzdem
ICh idiot hat sich erledigt danke
Ich hatte getElementByID stehen lassen obwohl ich die "id" weggemacht habe. habe also auf getElementByTagName umgestellt geht aber trotzdem net?? och krieg immer gesagt a und b wären NaN warum??
MfG Fredo