【问题标题】:Highcharts tooltip background according to line (without setting backgroundColor = null)Highcharts工具提示背景根据行(不设置backgroundColor = null)
【发布时间】:2017-08-03 23:10:02
【问题描述】:

我也有同样的问题:Highcharts tooltip background according to line

但此处提供的解决方案对我不起作用,因为将 backgroundColor 设置为 null 会使指针箭头消失:

因此我一直在尝试从我可以访问系列颜色的格式化程序本身更新工具提示背景颜色:

      args.options = Object.assign(args.options, {backgroundColor : this.series.color});
      this.color = this.series.color;

但由于某种原因,只有最初的颜色替换对我有用。然后后续的工具提示会显示我第一次更新的颜色。

第一次悬停: 第二次悬停:

第一次悬停: 第二次悬停:

问题演示:http://jsfiddle.net/GGQ2a/23/

刷新页面几次,然后将鼠标悬停在不同的系列上以查看问题。

我需要在每次悬停时更改颜色,由于某种原因,替换只在第一次出现时才被拾取

【问题讨论】:

    标签: javascript html css svg highcharts


    【解决方案1】:

    你可以包裹Tooltip.refresh()方法,根据点的系列颜色改变提示的背景。

    const H = Highcharts;
    
    H.wrap(H.Tooltip.prototype, 'refresh', function (p, point, mouseEvents) {
      p.call(this, point, mouseEvents);
    
      const label = this.label;
    
      if (point && label) {
        label.attr({
          fill: point.series.color
        });
      }
    });
    

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

    【讨论】:

    • 这个解决方案的问题(虽然它确实有效!)是我正在使用 reactJS,当我以这种方式修改 highcharts 工具提示属性类型时,它会更改页面上的所有 highcharts 以遵循此配色方案.有没有办法在我的配置对象中指定这个?
    • 基本上,该解决方案扩展了 Highcharts 库 - 因此处理此问题的一种干净方法是使用包装器制作另一个文件并将其作为 Highcharts 的常规插件加载。您可以再添加一张支票,例如如果 backgroundColor 设置为 'series' - 然后在图表的选项中设置或不设置 - jsfiddle.net/t38x6kug/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    相关资源
    最近更新 更多