【发布时间】:2017-08-12 09:39:25
【问题描述】:
我一直在使用带有内置工具提示的 D3 svg 图表(我相信使用 d3-tip 库)。原代码可以看这里:http://bl.ocks.org/Caged/6476579
我已经成功地对其进行了大部分自定义,但是我需要添加第二个鼠标悬停效果;这样当您将鼠标悬停在一个条上时,它不仅会打开工具提示,还会打开图表右上角的另一个提示或图层。
我尝试执行以下操作,但似乎不起作用。我只是在语法中遗漏了一些东西吗?还是这个策略根本行不通?
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) {
return "<strong>Frequency2:</strong> <span style='color:red'>" + d.frequency2 + "</span>";
})
//adding second tool tip
var tip2 = d3.tip()
.attr('class', 'd3-tip')
.offset([-40, 0])
.html(function(d) {
return "<strong>Other Variables:</strong> <span style='color:red'>" + d.frequency2 + "</span>";
})
然后
svg.selectAll(".bar")
.data(data)
.enter().append("rect")
.attr("class", "bar")
.attr("x", function(d) { return x(d.letter); })
.attr("width", x.rangeBand())
.attr("y", function(d) { return y(d.frequency2); })
.attr("height", function(d) { return height - y(d.frequency2); })
.on('mouseover', tip.show, tip2.show)
.on('mouseout', tip.hide, tip2.hide);
图表仍然有效,但现在没有显示任何工具提示。
【问题讨论】:
标签: javascript d3.js svg mouseover