Ho un'immagine nel formato .svg come quella qui sotto.Interagire con un'immagine .svg
Voglio fare una pagina web in cui l'utente può interagire con un'immagine come questa, ma con più nodi. La struttura sarà simile a a un albero.
È possibile interagire direttamente con questa immagine .svg utilizzando javascript/html/css?
Se sì, come?
Nota: per interazione intendo la possibilità di fare clic sui nodi, e la pagina Web che lo riconosce, e quando viene selezionato un nodo, il colore degli altri nodi cambia.
Nota2: Ho solo il file .svg, non so se sono in grado di definire questo come inline svg su html.
Nota3: Questa immagine avrà molti nodi (80+), quindi preferirei non dover definire un'area cliccabile per ognuno di essi e così via ... Ma se questa è l'unica soluzione, nessun problema.
Edit: Ecco il contenuto del mio file SVG:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: g Pages: 1 -->
<svg width="134pt" height="116pt"
viewBox="0.00 0.00 134.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>g</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 130,-112 130,4 -4,4"/>
<!-- a -->
<g id="node1" class="node"><title>a</title>
<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-86.3" font-family="Times New Roman,serif" font-size="14.00">a</text>
</g>
<!-- b -->
<g id="node2" class="node"><title>b</title>
<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-14.3" font-family="Times New Roman,serif" font-size="14.00">b</text>
</g>
<!-- a->b -->
<g id="edge1" class="edge"><title>a->b</title>
<path fill="none" stroke="black" d="M27,-71.6966C27,-63.9827 27,-54.7125 27,-46.1124"/>
<polygon fill="black" stroke="black" points="30.5001,-46.1043 27,-36.1043 23.5001,-46.1044 30.5001,-46.1043"/>
</g>
<!-- c -->
<g id="node3" class="node"><title>c</title>
<ellipse fill="none" stroke="black" cx="99" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="99" y="-14.3" font-family="Times New Roman,serif" font-size="14.00">c</text>
</g>
<!-- b->c -->
<g id="edge2" class="edge"><title>b->c</title>
<path fill="none" stroke="black" d="M54,-18C56.6147,-18 59.2295,-18 61.8442,-18"/>
<polygon fill="black" stroke="black" points="61.9297,-21.5001 71.9297,-18 61.9297,-14.5001 61.9297,-21.5001"/>
</g>
</g>
</svg>
Se non sai niente, probabilmente dovresti iniziare con un libro piuttosto che con una domanda veramente generale. Prova questo http: //www.w3.org/Grafica/SVG/IG/resources/svgprimer.html –
Grazie per il tuo suggerimento. Finora sto solo osservando quanto sarebbe complesso interagire con l'immagine svg. Non sono nemmeno sicuro se farò davvero quello che ho in mente. Inoltre, quello che ho intenzione di fare non è molto complesso, ho solo bisogno di sapere in qualche modo quali nodi sono selezionati e cambiare il colore di alcuni nodi in base a quello. Dopo aver visto il codice @Paulie_D, potrei provarlo questo fine settimana. :) – Xaphanius