2012-04-03 14 views
12

http://jsfiddle.net/nicktheandroid/5Ytnj/durante il ridimensionamento di un elemento con scala css3, diventa pixel fino a quando non è completata l'animazione. Sto animare un elemento con un bordo

Quando aggiungo -webkit-backface-visibility: hidden; all'elemento .circ, che induce a rimanere pixel anche dopo che l'animazione è stata completata.

Mi chiedo se c'è un modo per farlo sparire durante l'animazione. L'ho visto nella versione dev di Google Chrome.

+1

Ho avuto lo stesso problema, tranne che sto avendo il problema con il ridimensionamento di un pulsante con il testo al suo interno. È un problema simile a quello che viene menzionato [qui] (http://stackoverflow.com/q/8024061/432913). Avere il bordo non ha importanza, [succede anche con il testo] (http://jsfiddle.net/Qk9gX/). – will

risposta

16

Okay, penso di aver escogitato un lavoro;

essenzialmente; non usare "scala". usa "scale3d" e fallo configurare in modo che il più grande che desideri sia l'scale3d(1,1,1).

Here è un esempio con la cosa circolare che hai avuto lì. Ho cambiato la scala in 5, perché non volevo inserire 0.222222222222222222222222222222222 nella funzione di scala3d ...

[modifica] Così ho provato di nuovo la demo di jsfiddle, su un computer senza accelerazione hardware, e l'effetto di pixelizzazione era andata. Quindi sembra che sia lo stesso problema con scale3d dove lo converte in una texture e poi lo ridimensiona. puoi fare come nel circ3 div here.

+0

Grazie, questo ha risolto anche il mio problema! L'impostazione esplicita di scale3d (1,1,1) per lo stato di partenza (ad esempio la classe CSS), quindi usando scale3d (1.5, 1.5, 1.5) per la classe di transizione, ha fatto il trucco. Dovrebbe essere la risposta accettata. –

+1

Per me non ha fatto alcuna differenza, l'immagine è inizialmente chiara, pixelata durante il ridimensionamento con scale3d e chiare dopo l'animazione. – Rob

+0

@Rob Sono abbastanza sicuro che dipende dal browser e dipende anche dalla GPU. Puoi cambiarlo nei vari bit di configurazione per firefox, e in chrome puoi aggiungere un argomento della riga di comando per forzare/disabilitare l'accelerazione di gpu. – will