2011-03-24 3 views
2

Il semble que la configuration suivante sur jsFiddle ne fonctionne que lisse dans Firefox 4. http://jsfiddle.net/ynytc/39/animation fluide que dans Firefox 4

Im se demander pourquoi? Je pensais peut-être à cause de l'accélération matérielle dans Firefox 4, mais sans cela fonctionne encore lisse.

Alors peut-être que quelqu'un sait pourquoi?

edit: par rapport au chrome, safari, IE8

+0

En fait, il est plus lisse, même dans Firefox 3.6 :) –

+0

je voulais dire par rapport à Chrome ou Safari le plus lisse dans Firefox 4, au moins sur mes ordinateurs – user675803

+0

je voulais dire la même chose, cependant le numéro 4 n'est pas la clé mais le mot Firefox. Même en FF 3.6 c'est pareil. –

Répondre

0

Vous animez sur une période de 10 secondes un changement de taille de seulement 20 pixels. Cela signifie qu'il n'y aura qu'un seul changement de dimension intégral toutes les 1/2 secondes, ce qui est exactement ce que je vois dans Chrome. La taille de l'image ne peut pas être définie sur des fractions d'un pixel (dans tous les navigateurs). Firefox 4 semble autoriser cela, cependant; c'est la seule chose que je peux imaginer de toute façon. Si vous modifiez votre violon like this, vous verrez que Chrome exécute l'animation aussi rapidement que vous le souhaitez, mais l'image ne change que lorsqu'il y a un changement entier dans la valeur de la propriété (largeur et hauteur).

+0

Oui, il semble que firefox fait une interpolation linéaire pour les pixels alors que les autres navigateurs ne le font pas. –

+0

oui semble que c'est ce qui se passe, merci – user675803

0

Ceci est un effet secondaire intéressant que je n'avais pas rencontré auparavant.

Il semble que les autres navigateurs ne peuvent pas appliquer la mise à l'échelle du sous-pixels, vous n'avez donc que 20 pixels à diffuser en 10 secondes, ce qui donne un nombre de pixels supérieur à 2 images par seconde. La solution de contournement pour cela serait d'appliquer des transitions CSS (si vous n'avez pas besoin de prendre en charge IE).

Voir par exemple avec des transitions CSS ici: http://jsfiddle.net/nKfdB/