Umgang mit Mausereignissen in überlappenden SVG-Layern

8

Ich baue eine Kartenvisualisierung mit d3.js. Ich zeichne gefüllte Polygone für die US-Bundesstaaten und Kreise. Die SVG-Ebene für Landkreise befindet sich unter der Ebene für Status. Die Zustände sind gefüllt, aber Füll-Opazität ist auf 0 gesetzt; Die Füllung ist (glaube ich) erforderlich, um Klickereignisse zu erfassen.

Ich möchte Klickereignisse auf Länderebene erfassen, aber ich möchte Mouseover-Ereignisse auf Kreisebene erfassen.

Das mouseover-Ereignis wird jedoch von den Zuständen erfasst und nicht an die Grafschaften weitergegeben.

Gibt es eine Möglichkeit, das Ereignis auf einer Ebene zu passieren oder das mouseover-Ereignis in der Grafschaft auf andere Weise auszulösen?

    
Tim Hopper 28.05.2013, 18:39
quelle

2 Antworten

6

Hier ist eine d3-Funktion, die das macht, was Sie wollen.

Er übergibt Ereignisse an niedrigere Ebenen, indem er Zeigerereignisse vorübergehend auf der obersten Ebene deaktiviert und das Mausereignis manuell auf der nächsten Ebene auslöst.

%Vor%     
teh_senaus 17.09.2014 11:09
quelle
2

Wenn Sie etwas tun möchten, wenn Sie auf einen Zustand klicken, etwa den Umrandungsstil oder die Deckkraft der Form ändern, können Sie die Tatsache verwenden, dass jeder Kreis zu einem Staat gehört und die Bezirke nur in Staaten gruppiert Klicken Sie im County auf "klicken", wählen Sie das entsprechende Statuselement und ändern Sie seine visuellen Attribute. Ein Modell dieser Strategie:

%Vor%

Hier gibt es eine funktionierende Geige: Ссылка . Grüße,

    
Pablo Navarro 28.05.2013 20:20
quelle

Tags und Links