Quindi ho alcuni elementi nativi (div
s) con vari effetti applicati a loro (border-radius
, box-shadow
e transform: scale()
). Quando li anima, accadono due cose strane:Le animazioni CSS3 con trasformazione provocano elementi sfocati su Webkit
- Anche se non sto provando ad animare la scala, se non inserisco la scala nell'animazione, viene ignorata.
- Quando ho messo la scala nell'animazione, Webkit offusca gli elementi
veda l'esempio qui: http://jsfiddle.net/trolleymusic/RHeCL/ - i pulsanti nella parte inferiore farà scattare i problemi.
Il primo problema si verifica anche in Firefox, quindi suppongo che sia così che si suppone che le specifiche dell'animazione funzionino. Non è quello che volevo, ma ok, ci vivrò.
Il secondo problema è strano. So che ha a che fare con 3d transform perché se io (solo per scopi di test) dichiarare -webkit-perspective
o -webkit-transform-style: preserve-3d;
sugli elementi del cerchio, causa anche il problema di sfocatura. La mia confusione è che non sto cercando di trasformare l'indice z come tutto, e ho anche provato le animazioni usando semplicemente translateY
invece di translate
.
Accade in Chrome (18), Chrome Canary (20) e Safari (5.1.2 & 5.1.4).
Quindi, ho ragione in quello che penso stia succedendo? E come posso evitare la sfocatura?
Scenario peggiore: posso semplicemente utilizzare diverse dimensioni per gli elementi anziché ridimensionarli, non è davvero un problema, ma ho pensato che sarebbe stata una soluzione più elegante e ora questo problema è saltato fuori.
Viene ignorato perché sia la scala che il valore di traduzione sono valori della proprietà di trasformazione. Durante l'animazione, si sostituisce la trasformazione precedente, ovvero la scala. – mddw
Sì, lo pensavo. Immagino che sia proprio come funziona la proprietà 'transform', è un peccato non poter impostare singolarmente le diverse proprietà. Ad esempio: posso animare l'opacità di più elementi con classi diverse che hanno proprietà diverse al loro interno. – Trolleymusic