javascript - Highcharts 图例展开至全宽

标签 javascript css highcharts

是否可以在图表的整个宽度上展开图例项,同时保持环绕?我正在寻找类似 flex 对齐属性 space-between 的东西。

我有什么:

enter image description here

我想要的(除了第一行只有 3 个元素,这很好): enter image description here

最佳答案

您可以在加载/重绘事件中动态重新定位图例项。

根据你的 fiddle ,方法可以是这样的(对于 html 元素宽度必须以不同的方式抓取)

function adjustLegend() {
  const legend = this.legend
  const legendWidth = this.chartWidth - 20

  legend.allItems.forEach((item, i, allItems) => {
    const {width, height} = item.legendGroup.getBBox()
    const itemsPerRow = i < 3 ? 3 : 2

    item.legendGroup.attr({
      translateX: (i % itemsPerRow) * (legendWidth - width) / (itemsPerRow - 1),
      translateY: Math.floor(i / 3) * (height + 5)
    })
  })
}

在图表选项中:

events: {
  load: adjustLegend,
  redraw: adjustLegend
}

示例:https://jsfiddle.net/f6btakom/1/

关于javascript - Highcharts 图例展开至全宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044313/

相关文章:

javascript - 测试值是否传递给发出事件的方法,Vue

javascript - 在按钮内渲染 SVG 图标?

css - Normal Flow、Flow Layout、Block 和 Inline Layout 有什么区别?

css - 是否可以通过子主题在 Magento 2 中使用 vanilla CSS 文件?

html - Highcharts 堆积柱突出显示

javascript - 如何使用 pagetoken 谷歌应用程序脚本

javascript - 在对象中使用 this 时出现 TypeError

javascript - 如何在不保存信息的情况下提醒用户离开页面

jQuery Highcharts 双 donut chart 表( donut 内的 donut )

highcharts - Puppeteer 没有 HTML 页面?