2010-07-03 17 views
9

¿Es posible utilizar Raphael para manipular una imagen SVG incrustada? Utilicé a Raphael en el pasado para dibujar formas, pero en realidad no lo he visto usar para manipular una imagen SVG existente. Si no, ¿hay algo más que me permita cambiar colores, agregar eventos, etc. fácilmente a los polígonos de una imagen SVG incrustada?Use Raphael para manipular SVG

Respuesta

0

Es curioso, ayer encontré la página glitchsvgicons haciendo eso.
Aunque de una manera muy primitiva, simplemente usando una expresión regular, reemplace las partes.
Sin embargo, puede ser una pista: al parecer, puede usar una buena búsqueda/reemplazo de partes de texto en los iconos de SVG. Pero es más propenso a problemas que el uso de un árbol Dom real ...

+0

A juzgar por la falta de respuestas, creo que no hay ninguna posibilidad de usar Raphael para hacer esto. Creo que me quedo con jquery para manipular el árbol DOM. – Max

4

Desde mi experiencia leyendo la fuente Raphael.js, tengo que estar de acuerdo con las publicaciones anteriores. La única forma en que puedo pensar para reemplazar o modificar el SVG es reemplazando/modificando el marcado/DOM.

Todo lo que quiero agregar en mi respuesta es una breve explicación general de por qué esto es así. Raphael está diseñado como generador SVG/VML . Es decir, Raphael crea objetos JavaScript y agrega sus marcas SVG/VML correspondientes al DOM a medida que se crean. Los objetos tienen muchas propiedades adicionales que los hacen funcionar dentro del marco de Raphael.

Puede ser posible escribir un complemento que pueda construir un objeto Raphael alrededor de un elemento SVG leyendo sus propiedades, pero sospecho que tal objeto puede no tener toda la información necesaria para coexistir con los otros objetos Raphael . Ciertamente, actualmente no existe tal funcionalidad de análisis/reconstrucción.

+0

la documentación de Raphael con respecto al modo 'ninja' respalda sus comentarios. el modo 'ninja' de Raphael elimina el objeto global de Raphael pero la documentación indica que usar el modo 'ninja' podría evitar que los complementos funcionen ya que necesitan acceder al obj global de Raphael [enlace] (http://raphaeljs.com/reference.html # Raphael.ninja) –

+0

El modo Ninja no tiene nada que ver con mi respuesta. No me estoy refiriendo al objeto global de Raphael, sino a los objetos individuales que corresponden a los elementos SVG creados por Rafael. – myw01