【问题标题】:Dynamically change renderer.text css attribute in HighCharts动态更改 HighCharts 中的 renderer.text css 属性
【发布时间】:2017-03-09 14:30:11
【问题描述】:

我想动态更改仪表图上的 css 属性颜色值。 显示文字的功能在这里:

function setText(text, x, check) {
    var chart = $('#graph-4').highcharts();

    if ( check === true ) {
        var color = '#ffffff';
    } else {
        var color = '#555555';
    }

    var ret = chart.renderer.text(text, chart.plotWidth*x, chart.plotHeight*0.5)
    .attr({
        zIndex: 5
    })
    .css({
        fontSize: '13px',
        color: color,
        'text-anchor': 'middle',
    })
    .add();
}

在我的代码调用 setText 函数之前,它会检查来自 JSON 的传入值,因此如果传入值小于 0(零),那么我的文本应该以一种颜色显示,并且当传入值更大时大于 0(零)的文本应该以另一种颜色显示。 图表动态刷新来自 JSON 的值,并通过命令更新系列:

chart.series[0].setData(incoming_value);

在这行之后,当我调用函数时:

setText('myText', 0.3, colorParameter);

每次刷新都会在最后一个文本之上添加新文本,因此它会在代码中生成新行,而不是清晰的视觉效果。

如何动态更新这个 css 属性?

【问题讨论】:

    标签: javascript json highcharts


    【解决方案1】:

    修改您的函数,以便在第一次调用时创建一个标签,然后,当标签已创建时,仅更改一些参数。

    function setText(text, x, check) {
      var chart = $('#graph-4').highcharts();
      var ret = this.customText;
      console.log(chart);
      if (check === true) {
        var color = '#ffffff';
      } else {
        var color = '#555555';
      }
    
      if (!ret) {
        ret = this.customText = chart.renderer.text(null, -9999, -9999)
        .attr({
          zIndex: 5
        })
        .css({
          fontSize: '13px',
          'text-anchor': 'middle'
        })
        .add();
      }
    
      ret.attr({
        text: text,
        x: chart.plotWidth * x,
        y: chart.plotHeight * 0.5
      }).css({
        color: color
      });
    }
    

    示例:http://jsfiddle.net/qdnk21ej/

    【讨论】:

    • 如果我只想显示一个标签,这很有用。但是,如果我想使用“setText”函数显示两个(或更多)标签,它仅适用于代码中的最后一次出现。那么我们可以在您的代码中进行哪些更改以使其更具通用性/可重复性?临时我创建了第二个函数“setText2”并将“this.customText”更改为“this.customText1”。
    • 我会创建一个数组/对象来保存所有自定义文本,并向函数添加另一个参数来标识要更改的文本 - jsfiddle.net/qdnk21ej/1
    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    相关资源
    最近更新 更多