看看:http ://bl.ocks.org/2973775
请注意,在您的 jsFiddle 中,您实际上并没有使用 d3。但是您可以轻松添加它以获得工具提示,请参见此处:
var svg = d3.select("svg").attr("width", 400).attr("height", 400);
var vis = svg.append('g');
var txt = vis.append('text')
.attr({ transform: 'translate(5,20)', fill:'red'})
.text("Node Info");
d3.selectAll('.bar')
.on("mouseover", function(d) {
var mousePos = d3.mouse(this);
txt.text(mousePos);
txt.attr({transform: 'translate(' + mousePos + ')'});
})
.on("mousemove", function(d) {
var mousePos = d3.mouse(this);
txt.attr({transform: 'translate(' + mousePos + ')'});
});
要确定哪个栏,您必须查看鼠标 x 位置。您应该考虑为此使用d3 比例(它将在两个方向上映射 - 检查反转功能)。