我想调整这个分组条形图D3.js 示例,以便在用户将鼠标悬停在其中一个条形上时显示工具提示。
我已经研究出如何显示相对于用户鼠标指针的工具提示,如下所示:
var tooltip = d3.select("body").append("div")
.attr("class", "tooltip")
.style("opacity", 1e-6);
state.selectAll("rect")
.data(function(d) { return d.ages; })
...
.on("mouseover", function(d, i) {
tooltip.transition()
.duration(100)
.style("opacity", 1);
tooltip.html("hello world")
.style("left", x + "px")
.style("top", y + "px");
});
// CSS
div.tooltip {
position: absolute;
width: 130px;
height: 60px;
background: #ddd;
}
但这并不理想,因为它部分掩盖了条形图。我真正想做的是在所选栏的顶部显示一个工具提示 - 谷歌图表的方式:https ://developers.google.com/chart/interactive/docs/gallery/columnchart#Example
有谁知道我不能得到鼠标的绝对 x/y 坐标,而是当前被鼠标悬停的块的绝对 x/y 像素坐标?然后我可以使用这些坐标来定位工具提示。
这是 jsfiddle 的开始(但由于访问控制,我无法加载数据):http: //jsfiddle.net/YGjHT/1/