我的网站上有两个nvd3图。
带有鼠标悬停的第一张图:
第一张图的代码:
var chart = nv.models.multiBarChart()
.reduceXTicks(true) //If 'false', every single x-axis tick label will be rendered.
.rotateLabels(0) //Angle to rotate x-axis labels.
.showControls(true) //Allow user to switch between 'Grouped' and 'Stacked' mode.
.groupSpacing(0.1) //Distance between each group of bars.
;
d3.select('#chartSumme svg').datum([{ key: 'Row1', values:
[{ x:'2019', y: 328500},{ x:'2020', y: 8236000},{ x:'2021', y: 3162500},{ x:'2022', y: 2814500},{ x:'2023', y: 13377000},{ x:'2024', y: 17098500}]
}, { key: 'row2', values:
[{ x:'2019', y: 335550}...and so on]}
]).transition().duration(500).call(chart);
带有鼠标悬停的第二个图形:
第二张图的代码:
var chart = nv.models.multiBarChart()
.reduceXTicks(true) //If 'false', every single x-axis tick label will be rendered.
.rotateLabels(0) //Angle to rotate x-axis labels.
.showControls(true) //Allow user to switch between 'Grouped' and 'Stacked' mode.
.groupSpacing(0.1) //Distance between each group of bars.
;
d3.select('#chart svg').datum([{ key: 'Row1', values:
[{ x:'2019', y: 0},{ x:'2020', y: 5000000},{ x:'2021', y: 0},{ x:'2022', y: 0},{ x:'2023', y: 0},{ x:'2024', y: 0}]
}, { key: 'row2', values:
[{ x:'2019', y: 2000}...and so on
},]).transition().duration(500).call(chart);
问题
您可以看到,鼠标悬停在第二张图上没有显示标签。首先,我认为我的代码中有错误,但后来我发现标签将位置移到了图形之外:
顶部是第一个图形,然后是文本(黑框),然后是第二个图形,并带有鼠标悬停。第二张图上的标签显示在第一张图上。如何解决此问题,以便每个标签都显示在他的图形中?
742行添加+window.scrollY
var positionTooltip = function() {
nv.dom.read(function() {
var pos = position(),
gravityOffset = calcGravityOffset(pos),
left = pos.left + gravityOffset.left,
top = pos.top + gravityOffset.top+window.scrollY;