highcharts所画的图,当鼠标悬停在series上时,line会变粗,怎么可以不让line有变化?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了highcharts所画的图,当鼠标悬停在series上时,line会变粗,怎么可以不让line有变化?相关的知识,希望对你有一定的参考价值。

参考技术A 设置enableMouseTracking: false本回答被提问者采纳

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属性更改为yserie属性。

你可以看到它在这里工作: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());
  });
});

以上是关于highcharts所画的图,当鼠标悬停在series上时,line会变粗,怎么可以不让line有变化?的主要内容,如果未能解决你的问题,请参考以下文章

Highcharts地图不改变悬停颜色

如何在highcharts中为图例添加工具提示

在 Highcharts 中隐藏关于传奇悬停的链接系列

Highchart基础教程-图表的主要组成

更改嵌套 div 内鼠标悬停时的图层颜色

Highcharts 鼠标跟踪/鼠标悬停功能在 chrome 上很慢,但在 Firefox 或 IE 上并不慢