Bild per Random bewegen
Bild per Random bewegen
- javascript
Guten Tag,
Also ich habe ein kleines Script auf meiner Seite das ein Bild per
Random und auf Klick bewegt wird. Ich hab jetzt nur versucht das das Bild nicht zweimal auf derselben Position auftauchen kann, aber das geht nicht :P
Kann mich jemand verbessern/belehren? ^^
<script>
<!--
function randomPosition()
{
var e = document.getElementById('img');
e.style.position = "absolute";
if (Math.random() <= 1/6) {if (e.style.left != 170) {e.style.left = 170 + "px"; e.style.top = 360 + "px";}}
else { if (Math.random() <= 1/6*2) {if (e.style.left != 285) {e.style.left = 285 + "px"; e.style.top = 250 + "px";}}
else { if (Math.random() <= 1/6*3) {if (e.style.left != 410) {e.style.left = 410 + "px"; e.style.top = 152 + "px";}}
else { if (Math.random() <= 1/6*4) {if (e.style.left != 435) {e.style.left = 435 + "px"; e.style.top = 395 + "px";}}
else { if (Math.random() <= 1/6*5) {if (e.style.left != 685) {e.style.left = 685 + "px"; e.style.top = 145 + "px";}}
else { if (Math.random() <= 1/6*6) {if (e.style.left != 530) {e.style.left = 530 + "px"; e.style.top = 250 + "px";}}
}}}}}
}
//-->
</script>
Hallo,
beim Zuweisen hängst du ein "px" an, beim Vergleichen ignorierst du es.
Aber warum so kompliziert? Versuch doch einfach
faktor = 200;
offset = 800;
e.style.left = Math.floor(Math.random()*faktor)+offset+"px";
Gruß, Jürgen
Hallo,
vielleicht ist es dir noch nicht bewusst, jeder Aufruf von Math.random() ergibt eine neue Zahl. Deswegen macht deine Fallunterscheidung wenig Sinn.
ich hätte die Koordinaten in einem Array abgelegt, etwa so ...
function randomPosition()
{
var e = document.getElementById('img');
e.style.position = "absolute";
function px(x) { return ""+x+"px"; }
var xy=[ // Koordinaten
[170,360],
[200,400],
[225,40]
];
var r=Math.floor(xy.length*Math.random());
e.style.width=px(xy[r][0]);
e.style.heigth=px(xy[r][1]);
}
Gruß plan_B