die ist deshalb abhängig von der rechnergeschwindigkeit weil du 2 fehler drin hat:
function laufe() {
... laufe()
ungünstig da du bei jedem durchlauf wieder einen durchlauf startest. das heißt das programm belegt immer mehr speicher da die schleife nicht beendet wird.
anstelle von Laufe kannst au auch schreiben::
function laufe() {
if (document.layers) document.band.left=z;
else document.all.band.style.left=z;
z-=g;
if(z<-2500)z=910;
setTimeout("
Zitat:
function laufe() {
if (document.layers) document.band.left=z;
else document.all.band.style.left=z;
z-=g;
if(z<-2500)z=910;
setTimeout("laufe()",b);
}
",b);
}
und in der schleife wird es wieder ersetzt etc also jeder weitere durchlauf der schleife wartet auf das ende der in ihr wieder gestarteten schleife - starte nicht aus einer schleife die gleiche schleife wieder da du damit eventuell versehendlich eine kaskade startest...
zweiter fehler:
du setzt ein timeout von 1 also 1/1000s das ist so wenig das du versuchst 1000 durchläufe pro sekunde zu machen daher läußt das viel zu schnell wenn der pc mitkommt.
Lösung:
Zitat:
<body onLoad="setInterval('laufe()', 100);">
ruft laufe alle 0,1 sekunden auf
Laufe selber must du dann umschreiben:
Zitat:
function laufe() {
if (document.layers) {
document.band.left=z;
}
else {
document.all.band.style.left=z;
}
z-=g;
if (z<-2500) {
z=910;
}
}
müste etwa hinkommen - ich hab nun dein Laufe nur so umgeschrieben das laufe selbst sich nicht wieder aufruft und gewöhne dir an deinen quelltext einheitlicher zu gestallten, also blöcke mit klammern abzuschließen um start und ende einer if-schleife besser finden zu können.