Felix Riesterer: / (CSS) IE8 rundet Fließkomma-Pixelwerte?!?

Beitrag lesen

Liebe Spezialisten,

Mir ist heute aufgefallen, dass mein "Bilderticker"-Script im IE8 nicht "ticken" wollte, sprich es kam keine Bewgung zustande. Fehlermeldungen erschienen auch keine, denn das Script wurde weiterhin (offensichtlich fehlerlos) ausgeführt.

Meine Nachforschungen haben ergeben, dass die als marginLeft zugewiesenen Werte vom IE8 gerundet werden. Wenn die Ticker-Geschwindigkeit auf "0.5" steht, werden als margin-left immer um einen halben Pixel verminderte Werte zugewiesen. Das sieht dann so aus:

margin-left: 0px
margin-left: -0.5px
margin-left: -1px
margin-left: -1.5px
margin-left: -2px
margin-left: -2.5px
usw.

Da mein Script den momentan zugewiesenen Wert für margin-left ausliest, um daraus den neuen Wert zu errechnen, wechselt es ständig von 0px auf -0.5px, da der IE8 aus den -0.5px wieder 0px macht - und deswegen blieb mein Ticker im IE8 stehen.

Eine Lösung des Problems war, den numerischen Wert in einer Variablen abzuspeichern, um als Berechnungsgrundlage nicht den aktuellen Wert von margin-left zu nehmen, sondern den abgespeicherten Wert. O_o

Wer hat ähnliche Erfahrungen mit dem IE8 gemacht?

Wer weiß, ob das Runden von Fließkomma-Pixelwerten standardkonform ist?

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)