Highcharts:悬停其他系列时更改系列的颜色
我有一个问题,我想改变一个列系列的填充颜色时,悬停在另一个系列。(这是为了可视化相关系列) 我成功地改变了mouseOver上的颜色,但无法恢复mouseOut上的颜色 到目前为止,我掌握的密码是开启的Highcharts:悬停其他系列时更改系列的颜色,highcharts,Highcharts,我有一个问题,我想改变一个列系列的填充颜色时,悬停在另一个系列。(这是为了可视化相关系列) 我成功地改变了mouseOver上的颜色,但无法恢复mouseOut上的颜色 到目前为止,我掌握的密码是开启的 将鼠标悬停(鼠标悬停在上方)时,顶部堆叠系列(浅蓝色)的颜色与底部(黑色)系列的颜色相同。出于一个或其他原因,mouse out事件与mousOver事件的工作方式不同。执行鼠标移出时,代码似乎会循环。显然,在执行更新鼠标移出内部时,重新绘制-更新的一部分会导致递归调用鼠标移出,最终导致“超出堆
将鼠标悬停(鼠标悬停在上方)时,顶部堆叠系列(浅蓝色)的颜色与底部(黑色)系列的颜色相同。出于一个或其他原因,mouse out事件与mousOver事件的工作方式不同。执行鼠标移出时,代码似乎会循环。显然,在执行
更新鼠标移出内部时,重新绘制-更新的一部分会导致递归调用鼠标移出,最终导致“超出堆栈大小”。在中,我使用了一个布尔值来防止它递归发生,这似乎在Chrome中对我有效。希望这就是你想要的。唯一真正的变化是在mouseOver
和mouseOut
中添加了mouseSover
变量
这似乎是一个与调用update
内部mouseOut
有关的bug(?),早在2011年和2010年就有报道。没错!这正是我需要的!谢谢
var hoverSerie;
var originalColor;
var newColor = '#a760d6'
$(function () {
var t = $('#container').highcharts({
chart: {
type: 'column'
},
xAxis: {
categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas']
},
yAxis: {
min: 0
},
plotOptions: {
column: {
stacking: 'normal'
}
},
series:[{
events: {
mouseOver: function() {
hoverSeries = this.chart.series[2]
originalColor = hoverSeries.options.color;
hoverSeries.options.color = newColor;
hoverSeries.update(hoverSeries.options);
},
mouseOut: function(){
if(originalColor)
{
hoverSeries.options.color = originalColor;
hoverSeries.update();
}
}
},
animation : false,
name: 'John',
data: [5, 3, 4, 7, 2]
}, {
animation : false,
name: 'Jane',
data: [2, 2, 3, 2, 1]
}, {
animation : false,
name: 'Joe',
data: [3, 4, 4, 2, 5]
}]
});
});