Struppi: Out of memory bei Layer-Positionierung

Beitrag lesen

Also fangen wir mal an.

<script language="Javascript">

hier fehlt das type Attribut:
<script type="text/Javascript">

posi01=0;posi02=0;posi03=0;
zaeh01=1;zaeh02=1;zaeh03=1;

function move_slot() {
gone01="-"+posi01+"px"; gone02="-"+posi02+"px"; gone03="-"+posi03+"px";

Übersichtlickeit ist nicht deine Stärke. Sorry, aber ich mußte mir das mehrmals durchlesen um zu verstehen was da passiert.

gone01 = "-" + posi01 + "px";
gone02 = "-" + posi02 + "px";
gone03 = "-" + posi03 + "px";

document.getElementById("slot1").style.top = gone01
document.getElementById("slot2").style.top = gone02
document.getElementById("slot3").style.top = gone03

Ich würd hier für eine funktion basteln:

function setPos(name, pos)
{
var obj = document.getElementById(name);
if(!obj) return null;
obj.style.top = "-" + posi03 + "px";
return obj;
}

und dann:

setPos('slot1', posi01);
setPos('slot2', posi02);
setPos('slot3', posi03);

und die zahlen deuten schon darauf hin, das ein Array sinnvoll wäre. Aber lassen wir das.

posi01=posi01+1;posi02=posi02+1;posi03=posi03+1;
zaeh01=zaeh01++;zaeh02=zaeh02++;zaeh03=zaeh03++;

Arrrg, wer soll das lesen

posi01++;
posi02++;
posi03++;

zaeh01++;
zaeh02++;
zaeh03++;

if (zaeh01 <=100 && zaeh02<=100 && zaeh03<=100) {move_slot();}

so und jetzt rufst du 100 mal die Funkion rekursiv auf ohne die Funktion zu beenden.

Du suchst window.setTimeout

if (zaeh01 > 99) return;
setTimeout('move_slot()', 100);
}

Struppi.