Ich habe eine Popup-Funktion in einer GeoMap mit d3.js erstellt. Der folgende Teil der Codes zeigt den spezifischen Knoten als Kreis, wenn ich die Maus über den Kreis bewege, wird ein Popup-Fenster angezeigt.d3.js PopUp-Fenster mit Mouseout und MouseOver
g2.selectAll(".details")
.data(d3.entries(json1))
.enter()
.append("circle")
.attr("r",0.5)
.attr("transform",function(d) { return "translate("+ projection([
d.value.lon,
d.value.lat
]) + ')'; })
.attr("fill","white")
.attr("stroke","steelblue")
.on("mouseover", function(d) {
div.transition()
.duration(500)
.style("opacity", .9);
div .html(
'<a href= "' + d.value.url + '">' + //with a link
d.value.name +"</a>" + "<br/>" + d.value.status)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 30) + "px");
})
Wie Sie sehen arbeitet, die Mouseover Funktion. Aber wenn ich die Ansicht vergrößern oder die Karte ziehen, wird es einige Fehler wie diese existieren:
Sie können das Popup-Fenster immer sucht in der gleichen Position (ich glaube, der Grund dafür ist, dass die Lage ist spezifisch , nicht dynamisch ändern, wenn ich die Karte ziehe).
Nun frage ich mich, wie kann ich eine mouseout Funktionalität erstellen, um das Popup-Fenster zu entfernen, wenn ich die Maus außerhalb des Kreises (Knoten)?
Oder gibt es eine Möglichkeit, die Fehler in der mouseover Funktionalität zu beheben?
Danke für Ihre Hilfe.
danke für deine Antwort, ich habe versucht, das mouseout-Ereignis zum Code hinzuzufügen, könnte es irgendwie funktionieren. Aber wenn ich die Maus auf den Knoten bewege, wird manchmal das Popup-Fenster nicht angezeigt. Wenn ich den Mouseout-Code lösche. es wird gezeigt werden. Ich bin mir nicht sicher, wo ist das Problem. – Otto