martes, 27 de octubre de 2009

Me cambio de RaphaelJS a JQuerySVG

Bueno, tras ver que en las nuevas versiones de RaphaelJS han quitado el manejo de grupos, es decir hacer una serie de elementos e incluirlos en un grupos y poder realizar sobre estos transformaciones, tales como traslación, rotación.. en su lugar han puesto la opción de crear sets, la genial idea fué de su desarrollador (Dmitry Baranovskiy), cuya excusa era que los grupos no están en VML para la compatibilidad con Internet Explorer.

Estos sets son grupos de elementos, como anteriormente, pero para el cual las transformaciones se comportan de forma distinta, en mi caso necesitaba realizar rotaciones, con los grupos podía colocar un elemento en el centro y otro a un lado, al rotar el grupo daba la impresión que el segundo elemento orbitaba alrededor del primero, ahora con los sets lo que me hace es rotar cada uno sobre su propio centro, de modo que tengo dos elementos que dan vueltas a sí mismos, pero no en conjunto.

Pensé en usar la librería con la que empecé, la 0.8.6, la cual sí que tiene la opción de grupos, pero no tiene otra opción que han incluido en la nueva, que es la de poder destruir un elemento que haya en pantalla (cuando tienes miles de elementos svg no puedes permitirte esconderlos con css para mostrar otros, debes destruirlos o tu navegador irá muyyyy lento). Para poder disfrutar de esta segunda opción me lié a pelear con trigonometría para hacer orbitar el segundo elemento, conseguí hacerlo, pero pensé que si tengo que comerme tanto la cabeza para girar cualquier cosa sobre otro elemento... símplemente paso.

Es por ello que le he dado una oportunidad a la librería de Keith Wood, la JQuerySVG, por ahora puedo hacer lo que quería, pero no tengo compatibilidad con Internet Explorer... que le den, estoy cansado del Quirks Mode, creo que es un retraso y una forma de fastidiar buenas webs que usan estándares válidos que los navegadores viejos no soportan. Esta librería es un plugin de JQuery (como habreis podido imaginar) y, como tal, tiene total integración en este framework.

Lo único que echo de menos es la buena documentación que tenía la RaphaelJS... ya veremos qué tal me va con la otra...

No hay comentarios:

Publicar un comentario