Hallöle,
ich möchte eine Grafik von links nach rechts über den Bildschirm laufen lassen, indem ich den linken Rand mehrmals um 1% erhöhe.
Die Funktion zur Neupositionierung rufe ich mit setInterval alle 5 Millisekunden auf. Demnach müsste die Grafik in etwa 1 sec. am Ziel sein.
Der IE machts korrekt, während NS und FF die vierfache Zeit benötigen.
Wenn ich die Zeit auf 50 ms hochsetze, läufts gleichmäßig etwa 4 sec in dreien (wie heisst beiden +1 ?) Browsern.
Habe den Verdacht, dass NS und FF nur recht große Millisekunden mögen, ist der Bug bekannt oder habe ich was falsch gemacht?
Hier das Script:
var start_x = 0; // Rand in Prozent
var tempo = 50; // Millisekunden
var aktiv, diff;
function Move(name, ziel_x) {
if ( aktiv ) window.clearInterval(aktiv);
window.document.images[name].style.visibility = "visible";
if ( start_x != ziel_x && ziel_x >= 0 && ziel_x <= 100) {
if ( start_x < ziel_x ) diff = 1; else diff = -1;
aktiv = window.setInterval("doMove('"+name+"',"+ziel_x+")",tempo);
}
}
function doMove(name, ziel_x) {
// OHNE RUNDUNG UNGENAU WG. HEXAZAHL:
start_x = Math.round(( start_x +diff )* 100 ) / 100;
window.document.images[name].style.marginLeft = start_x+'%';
if (( start_x == ziel_x ) ) {
window.clearInterval(aktiv);
}
}
...
<body onLoad="javascript:Move('bild',90)">
Danke schon mal für Tipps.
Kalle