我想使用highcharts有以下行为。 我需要有两种工具提示:
对于自定义工具提示,我可以使用简单的工具提示格式化程序。 问题在于共享工具提示。 是否可以与一些系列共享默认工具提示,并且可以自定义一个?
感谢。
答案 0 :(得分:2)
这是可能的,但您需要使用格式化程序并准备逻辑。请参阅非常简单的演示http://jsfiddle.net/7gmxzwdf/5/
formatter:function(){
var txt = '',
x = this.x,
series = this.point.series.chart.series;
if(this.series.options.shared) {
$.each(series,function(i,s){
if(s.options.shared) {
$.each(s.data,function(j, d){
if(d.x === x) {
txt += '<span style="color:'+s.color+';font-weight:bold;">'+s.name+'</span> value: ' + d.y + '<br/>';
}
});
}
});
} else {
txt = 'not shared value: ' + this.y;
}
return txt;
}
答案 1 :(得分:0)
API中没有明显的方法,但你可以通过检测鼠标经过的系列来获得类似于你想要的东西:
var series1Selected=0;
...
series: [{
events: {
mouseOver: function () {
series1Selected = 1;
},
mouseOut: function () {
series1Selected = 0;
}
},
然后,您可以根据您是否在系列1上悬停来更改格式化工具提示的外观。
tooltip: {
formatter: function () {
if (series1Selected == 1) {
var s = '<b>Series 1</b>';
} else {
var s = '<b>Shared</b>';
$.each(this.points, function () {
s += '<br/>' + this.series.name + ': ' + this.y + 'm';
});
}
return s;
},
shared: true
},
这有点毛躁,但可以作为解决方案的基础。