Como experimento, estoy tratando de replicar la funcionalidad Sprite de AS3 en JavaScript sin usar el objeto canvas. Pensé que el uso de divs absolutamente posicionados y la manipulación de sus propiedades CSS no sería pan comido, sin embargo, en Chrome, la animación introduce artefactos extraños (aparentemente debido a problemas de redibujado).Animar un DIV con JavaScript representa artefactos en Chrome
¿No puedo encontrar lo que estoy haciendo mal? El código es, de hecho, bastante simple. He aquí algunos puntos que he intentado que no ayuda: (. A diferencia de posición absoluta)
- El uso de divs posicionadas relativamente
- Usando márgenes
- Anexión (en contraposición al principio & propiedades izquierda). objetos directamente en el cuerpo (en contraposición a anexar a un contenedor div.)
- el uso de setTimeout (en contraposición a requestAnimationFrame)
Se puede ver un violín simplificada aquí: http://jsfiddle.net/BVJYJ/2/
EDIT: http://jsfiddle.net/BVJYJ/4/
Y aquí se puede ver los artefactos en mi navegador:
Esto puede ser un error en mi programa de instalación (Windows 7 64 bits, Chrome 21.0.1180.75) Ningún otro navegador muestra este comportamiento. Agradecería mucho si alguien pudiera comentar sobre lo que podría estar haciendo mal. Tengo más curiosidad acerca de la razón detrás de esto en lugar de una solución alternativa por cierto. Dicho eso, todas las explicaciones son bienvenidas. :)
EDITAR: Hubo un error en el código de muestra que dio lugar al uso de setTimeout incluso cuando tenía la impresión de que se utilizaba RAF. requestAnimationFrame resuelve el problema con la transformación básica, pero el problema persiste con las transformaciones CSS, como la rotación.
Parece que esto se informó como un error para chrome/chromium> 21 http://code.google .com/p/chromium/issues/detail? id = 140501 – erkmene
esto parece ser una solución en Chrome 24? – gman