Highchart在图例鼠标悬停中间显示文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Highchart在图例鼠标悬停中间显示文本相关的知识,希望对你有一定的参考价值。
我有following code。我想要做的是,当鼠标悬停在图例上时,文字应该出现在甜甜圈的中心。
喜欢它发生在mouseOver单片甜甜圈时。
var chart = new Highcharts.Chart({
chart: {
renderTo: 'distrubution_of_funds',
type: 'pie',
borderRadius: 0
},
...
series: [ {
name: 'Versions',
data: [{
"name": "№ 123 (manager)",
"y":2709.74,
"color": "#E85620"
},{
"name": "№ 333",
"y":885.5,
"color": "#92B145"
}, {
"name": "other (127)",
"y": 3151.3274920329,
"isOther": true,
"color": "#B6B9BE"
}],
size: '80%',
innerSize: '60%',
showInLegend: true,
dataLabels: {
enabled: false
}
}],
legend: {
align: 'right',
verticalAlign: 'middle',
layout: 'vertical',
usehtml: true,
width: 160,
}
},
function(chart) {
var xpos = '50%';
var ypos = '53%';
var circleradius = 102;
// Render the text
chart.innerText = chart.renderer.text('$$$', 270, 210).css({
color: '#0f1122',
fontSize: '16px',
textAlign: 'center'
}).attr({zIndex: 999}).add();
});
怎么做?
例如工作图表at this page
答案
我添加了jquery
库以便使用更少的代码,因此这不是vanilla javascript
解决方案。我在你的function(chart) { // on complete
部分中添加了以下代码:
$(chart.series[0].data).each(function(i, serie){
$(serie.legendItem.element).hover(function(){
chart.innerText.attr({text: serie.y})
}, function(){
chart.innerText.attr({text: '$$$'});
});
});
这有点棘手,但基本上,你在每个hover
元素上附加一个legendItem
事件,它将图表innerText
属性更改为y
的serie
属性。
你可以看到它在这里工作:JSFiddle demo
另一答案
它的作品在这里:
http://jsfiddle.net/fw71sxx6/5/
我添加了jquery以在函数图表中添加它:
// Render the text
chart.innerText = chart.renderer.text('$$$', 270, 210).css({
color: '#0f1122',
fontSize: '16px',
textAlign: 'center',
display: 'none'
}).attr({
class:'getlegend',
zIndex: 999
}).add();
我添加这个脚本:
$( document ).ready(function() {
$('.highcharts-series').mouseover(function() {
$('.showlegend').html($('.getlegend').html());
});
});
以上是关于Highchart在图例鼠标悬停中间显示文本的主要内容,如果未能解决你的问题,请参考以下文章
使用innerHTML在悬停时显示图像图例(不是工具提示)?
如果我将鼠标悬停在 Plotly 中,如何显示与图例中所述不同的跟踪名称?
highchart 图例多个位置?图表中显示左侧的第一个图例和右侧的第二个图例