Highmaps悬停效果/ mouseout颜色变化

时间:2015-03-31 11:55:32

标签: highcharts highmaps

我想完全禁用悬停效果 这是代码片段

 series : [{
            data : data,
            mapData: Highcharts.maps['custom/world'],
            joinBy: ['iso-a2', 'code'],
            name: 'Population density',
            states: {
                hover: {
                    enabled:false
                }
            },
            tooltip: {
                valueSuffix: '/km²'
            }
        }]

但是当我鼠标移出时仍有一些颜色效果 这是一个jsfiddle highmaps fiddle(请更改上面的系列选项)

如何在地图点发生鼠标移除时修复该颜色效果,我们将不胜感激任何帮助或参考。

4 个答案:

答案 0 :(得分:3)

经过一番挣扎后,我得到了上述问题的解决方案,你只需要取系列数据的所有点对象,并在悬停时给它们提供与当前相同的颜色,但你不能直接给出颜色像这样

 states: {
            hover: {
                color:this.color
            }
        },

因此你可以像这样进行一些黑客攻击

  $('#container').highcharts('Map', options);
           var points = $('#container').highcharts().series[0].data;

           for (var i = 0; i < points.length; i++) {


               points[i].pointAttr.hover.fill = points[i].color;

           }

问题解决了...... !!!!

答案 1 :(得分:0)

这是一个没有jquery的解决方案:

const map = new Highcharts.Map(chartOptions);

(function() {
    var points = map.series[0].data;
    for (var i = 0; i < points.length; i++) {
        points[i].pointAttr.hover.fill = points[i].color;
    }
})();

在实例化地图后,只需将其弹出即可。

答案 2 :(得分:0)

@Vikas的解决方案对我不起作用。 pointAttr没有定义&#39;。

设置悬停颜色:null和亮度:0对我有效:

states: {
    hover: {
        color: null,  // Set no specific color to use original color
        brightness: 0 // Prevent brightness effect
    }
}

答案 3 :(得分:-1)

你可以禁用它,如下所示:

states: {
        hover: {
            enabled: false,
        }
    },