¿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
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 ...
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.
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) –
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
- 1. Raphael JS - Use un archivo SVG
- 2. Sugerencias para manipular un mapa SVG
- 3. Recorte de texto en Raphael JS/SVG
- 4. Archivos SVG en Raphael, ¿se pueden usar?
- 5. SVG viewBox zoom in center (Raphael)
- 6. Cómo guardar un svg generado por raphael
- 7. Manipular la vista de SVG con JavaScript (sin bibliotecas)
- 8. Animación: jQuery o Raphael?
- 9. Raphael JS
- 10. Escalar varias rutas con raphael
- 11. Raphael JS: cómo eliminar eventos?
- 12. Font-face, Raphael e IE8
- 13. Manipular elementos vinculando datos nuevos
- 14. Bibliotecas C++ para manipular imágenes
- 15. Bibliotecas para manipular polinomios multivariantes
- 16. Cómo crear un objeto degradado con Raphael
- 17. Raphael Position
- 18. puntero-eventos: ninguna solución Raphael VML
- 19. Convertir Raphael SVG a la imagen (png, etc.) del lado del cliente
- 20. Problema al guardar como png un SVG generado por Raphael JS en un lienzo
- 21. Conectando Raphael con Rails
- 22. ¿Es posible manipular un documento SVG incrustado en un documento HTML con JavaScript?
- 23. Traducir elementos SVG para una vista isométrica
- 24. Raphael JS - .text animado()
- 25. Menú de pie radial con Raphael JS
- 26. animando caminos con raphael
- 27. Manipular PHP-instanceof-operator para wrapper-class
- 28. Bibliotecas/tutoriales para manipular video en Java
- 29. Biblioteca multiplataforma para manipular rutas de Windows?
- 30. Powershell para manipular el archivo host
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