我正在构建具有缩放的折线图,并在悬停图表时显示带有x和y数据的工具提示。我为工具提示添加了一个覆盖矩形,并在onmousemove
上为工具提示加载了div。
在onmousemove
事件中,我使用函数d3.bisect
从数据中获取元素的索引,并将其显示在工具提示div上。
它工作正常,但是在放大图表之后,工具提示数据就好像没有被放大一样-d3.bisect返回索引,因为图表没有被放大。
我该如何解决?我需要重新调整覆盖矩形吗(我该怎么做)?
rect.on('mousemove', (d, i, n) => {
const index = d3.bisect(data.map(o => {return o.date;}),
x.invert(d3.mouse(n[i])[0]),1);
const element = data[index];
// show element})