2016-06-19 4 views

Antwort

1

Zum einen können Sie erheblich - und damit meine ich stark - vereinfachen Sie Ihre SVG durch das <circle> Element, zB.

<circle cx="20" cy="20" r="8" /> 

Es lohnt sich dies zu tun, weil die kubisch-Bezier-Pfade, die Sie derzeit haben (vermutlich von Ihrem Editor generiert) nicht genau Kreise - man kann nicht einen Kreis als Bezier-Kurve aus dem gleichen Grund darstellen kann man nicht Stellen Sie es als ein Polygon dar, es würde unendliche Seiten/Kurven benötigen.

Jetzt, da Ihr SVG etwa tausend Mal kleiner ist, können Sie tatsächlich damit arbeiten. Ihr Browser kann das auch, da er viele, viele Male schneller lädt und rendert, da er nicht mehr Tausende von Bezier-Kurven berechnen muss.

SVG-Elemente sind ... Elemente! Dies bedeutet, dass JavaScript und CSS mit ihnen arbeiten können.

ich eine sehr grobe Demo here gemacht haben, die wichtigen Bits sind:

[fill=white] { 
    cursor: pointer; 
} 
var white = document.querySelectorAll("[fill=white]"); 
var l = white.length, i; 
for(i=0; i<l; i++) { 
white[i].onclick = function() {alert(this.id);}; 
} 

Das sehr einfache Code gibt den weißen Kreisen den „Zeiger“ Cursor, und warnt ihre ID, wenn Sie klicke auf sie.

Je nach Ihren Bedürfnissen können Sie darauf aufbauen, wie Sie möchten.

+0

Vielen Dank !! – itailitai

+0

Hi, ich versuche immer einen Tooltip zu erstellen, wenn ich über einen weißen Kreis schwebe. Etwas wie folgt aus: http://i.imgur.com/qc0kspf.png Können Sie mir helfen mit, dass man? – itailitai

+0

Sie können Ihren Tooltip mit einem SVG-Pfad und einem '' Element definieren. Ich bemerke, dass Sie eine '' für Ihre weißen Kreise haben, also könnten Sie den Tooltip dorthin setzen und CSS definieren für:' .tooltip {display: none} g> .tooltip {display: block} ', um vielleicht den Hover-Effekt zu bekommen . –