Heim > Web-Frontend > js-Tutorial > Wie erhalte ich das Knotendatum bei Mouseover-Ereignissen in D3 v6?

Wie erhalte ich das Knotendatum bei Mouseover-Ereignissen in D3 v6?

Susan Sarandon
Freigeben: 2024-10-24 07:46:01
Original
646 Leute haben es durchsucht

How to Grab Node Datum During Mouseover Events in D3 v6?

In D3 v6: So ermitteln Sie das Knotendatum bei Mouseover-Ereignissen

In D3 v6 und höher: Abrufen des gebundenen Datums eines Knotens mit Auswahl. on() unterscheidet sich von früheren Versionen. Anstatt die Mausereignisdaten zu empfangen, wird das Datum zum zweiten Parameter, der an den Ereignis-Listener übergeben wird.

D3v5 und früher

Zuvor folgten Ereignis-Listener in D3 diesem Muster :

selection.on("eventType", function(d, i, nodes) { .... })
Nach dem Login kopieren

wobei:

  • d das Datum des ereignisauslösenden Elements ist
  • i sein Index ist
  • Knoten ist die aktuelle Gruppe ausgewählter Elemente

Ereignisbezogene Daten konnten mit d3.event abgerufen werden.

D3v6

Mit D3v6 hat sich das Muster geändert zu:

selection.on("eventType", function(event, d) { .... })
Nach dem Login kopieren

Jetzt wird das Ereignisobjekt direkt als erster Parameter übergeben, während das Datum der zweite Parameter ist. d3.event ist daher veraltet.

Auf das Datum zugreifen

So rufen Sie das Datum des Mouseover-Ziels ab:

node.on("mouseover", (event, d) => { 
    console.log(d); 
});
Nach dem Login kopieren

Ereignisposition bestimmen

In D3v5 könnten Sie d3.mouse(this) verwenden, um die x-, y-Position des Ereignisses zu ermitteln. Verwenden Sie in D3v6:

d3.pointer(event);
Nach dem Login kopieren

Beispiel

Das folgende Beispiel zeigt das Abrufen des Datums und der Ereignisposition während eines Mouseover-Ereignisses:

const data = [
    {
        "id": "Myriel",
        "group": 1
    }, 
    {
        "id": "Napoleon",
        "group": 1
    }
];

const nodes = svg.append("g")
    .selectAll("circle")
    .data(data)
    .join("circle")
    ...;

node.on("mouseover", (event, d) => {
    console.log(d.id); 
    console.log(d3.pointer(event));
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erhalte ich das Knotendatum bei Mouseover-Ereignissen in D3 v6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage