echarts legend 自定义html
时间: 2023-07-26 22:39:14 浏览: 297
要完全自定义ECharts图例的HTML内容,你可以使用ECharts的API来获取图例的DOM节点,并在其中插入自定义的HTML代码。
首先,你需要在ECharts的option中设置`legend.show`为`false`,这样就可以隐藏默认的图例。然后,你可以在页面中添加一个容器元素来承载自定义的图例,比如一个`<div>`元素。最后,使用ECharts的`chart.on('legendselectchanged', callback)`方法来监听图例项的选择事件,并在回调函数中获取图例的DOM节点,并在其中插入自定义的HTML代码。
以下是一个示例代码,展示了如何使用自定义HTML代码来替换ECharts默认的图例:
```
// 隐藏默认的图例
legend: {
show: false
},
// 在页面中添加一个容器元素来承载自定义的图例
<div id="custom-legend"></div>
// 监听图例项的选择事件,并在回调函数中获取图例的DOM节点
chart.on('legendselectchanged', function (params) {
var legendHtml = '';
var legendDom = chart.getDom().querySelector('.ec-legend');
var legendItems = legendDom.getElementsByTagName('li');
for (var i = 0; i < legendItems.length; i++) {
var item = legendItems[i];
var name = item.getAttribute('data-name');
var iconHtml = item.querySelector('.ec-icon').outerHTML;
var textStyle = item.querySelector('.ec-legend-text').getAttribute('style');
legendHtml += '<div class="legend-item" data-name="' + name + '">' + iconHtml + '<span style="' + textStyle + '">' + name + '</span></div>';
}
document.getElementById('custom-legend').innerHTML = legendHtml;
});
```
在上面的代码中,我们首先隐藏了默认的图例。然后,在页面中添加了一个`<div>`元素来承载自定义的图例。最后,我们使用`chart.getDom().querySelector('.ec-legend')`方法获取图例的DOM节点,并遍历其中的图例项,将每个图例项的名称、图标、文本样式等信息提取出来,并拼接为自定义的HTML代码。最后,我们将自定义的HTML代码插入到`<div>`元素中,以展示自定义的图例。
阅读全文