event.pageX und event.pageY
Die nachstehende Beschreibung ist für event.pageX Beschreibung: Die Mausposition relativ zum linken Rand des Dokuments.
Unten ist der Code, den ich in einer meiner Anwendung verwendet hatte.
Sie können das div unten bei einem Mouseover-Ereignis anzeigen.
date.selectAll("rect")
.data(function(d) {
return d.mattel_data;
})
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function(d) {
return y(d.y1);
})
.attr("height", function(d) {
return y(d.y0) - y(d.y1);
})
.style("fill", function(d) {
return color(d.name);
})
.on("mouseover", function(d) {
div.transition()
.duration(100)
.style("opacity", .9);
var hoverVal = (d.y1 - d.y0);
var formatter = new Intl.NumberFormat('en-US',{
style : 'currency',
currency : 'USD',
minimumFractionDigits : 2,
});
var pop = formatter.format(hoverVal);
// console.log(pop);
div.html("Value:" + pop + "<br/>" + d.name)
.style("left", (d3.event.pageX - 140) + "px")
.style("top", (d3.event.pageY - 80) + "px")
.style('position', 'absolute')
.style('font-size', '15px')
.style('background', function() {
return color(d.name);
})
.style('color', function() {
return getContrastYIQ(color(d.name));
})
})
.on("mouseout", function(d) {
div.transition()
.duration(200)
.style("opacity", 0);
});
Sehen Sie, wenn das Ihnen hilft. Auch wenn Sie hier Ihren Code posten, der hilft, Ihr Problem klarer zu verstehen
können Sie eine jsfiddle bereitstellen? Ich weiß, dass Sie in anderen Tooltip-Bibliotheken Optionen festlegen können, um anzuzeigen, wo Sie klicken oder relativ zu Ihrem Container positionieren – derp