random image & random position ?!?
Michael Schmidt
- javascript
Hallo zusammen!
Ich mache nicht wirklich viel mit javascript, deswegen auch ein (vielleicht winziges) problem!
Ich möchte auf meiner startseite ein feld das neun positionen für bilder beinhaltet! diese bilder sollen wechseln! zuerst das bild in einer position und dann die position und darin wieder das bild...;) alles zufällig natürlich! dafür hab ich folgenden code!
<script language=JavaScript>
<!--
var bild = new Array();
for(i=1;i<10;i++)
{
bild[i]=new Image();
bild[i].src="bilder/ziel"+i+".gif";
}
function wechseln()
{
platz=Math.ceil(8*Math.random());
num=Math.ceil(8*Math.random());
document.bilder[platz].src=bild[num].src;
window.setTimeout("wechseln()",300);
}
//-->
</script>
...
<img src="bilder/ziel1.gif" name="bilder" width=100px" height=100px">
<img src="bilder/ziel1.gif" name="bilder0" width=100px" height=100px">
<img src="bilder/ziel1.gif" name="bilder1" width=100px" height=100px">
nehme ich die platz variable aus dem funktioniert das wechseln auf position 1 wunderbar! wieso? wie schaffe ich es auch die position zu wechseln?
Danke für eure vorschläge!
gruss
michael
Hallo alleine!
<script language=JavaScript type="text/javascript">
<!--
var bild = new Array();
for(i=1;i<10;i++)
{
bild[i]=new Image();
bild[i].src="bilder/ziel"+i+".gif";
}function wechseln()
{platz=Math.ceil(8*Math.random());
num=Math.ceil(8*Math.random());document.bilder[platz].src=bild[num].src;
document.bilder.src=bild[num].src;
geht? Ja, weil document.BildName.Eigenschaft geht, wenn der Browser das Image-Objekt kennt, und eines Deiner Bilder ja den Namen "bilder" hat.
document.images[platz].src=bild[num].src;
würde gehen, wenn es 10 Bilder geben würde images[0] ... images[9]. Du hast aber nur drei.
window.setTimeout("wechseln()",300);
}
//-->
</script>...
<img src="bilder/ziel1.gif" name="bilder" width=100px" height=100px">
<img src="bilder/ziel1.gif" name="bilder0" width=100px" height=100px">
<img src="bilder/ziel1.gif" name="bilder1" width=100px" height=100px">
Also, wenn es doch insgesamt 10 Bilder sind, dann
document.images[platz].src=bild[num].src;
sonst, bei 3 Bildern:
platz=Math.ceil(2*Math.random());
...
document.images[platz].src=bild[num].src;
Gruß
Axel
Hallo nochmal,
hab grade noch was gesehen:
var bild = new Array();
for(i=1;i<10;i++)
{
bild[i]=new Image();
bild[i].src="bilder/ziel"+i+".gif";
}
Das gibt das Array bild[1] ... bild[9] mit den Dateien ziel1.gif - ziel9.gif
platz=Math.ceil(8*Math.random());
platz kann 0 -8 werden.
num=Math.ceil(8*Math.random());
num kann 0 - 8 werden.
Es könnte also auch mal bild[0] aufgerufen werden, welches es nicht gibt. Das bild[9] wird hingegen niemals aufgerufen. Besser wäre es in der Schleife oben das Array bild[0] ... bild[8] mit den Dateien ziel0.gif - ziel8.gif zu erzeugen.
document.images[platz].src=bild[num].src;
würde gehen, wenn es 10 Bilder geben würde images[0] ... images[9]. Du hast aber nur drei.
Irrtum von mir!
würde gehen, wenn es 9 Bilder geben würde images[0] ... images[8].