簡體   English   中英

在Highcharts中,如何在調整圖例項目寬度后重繪圖表?

[英]In Highcharts, how to redraw chart after legend item width resized?

要求是:
1.“省略號”視覺效果“ ...”,用於溢出的圖例項的文本。
2.調整大小后,圖例項的寬度應隨新的容器大小調整。 意味着如果圖例項具有文本“ blahblahblahblah”,並且在調整大小后,圖表容器會變小並且沒有足夠的空間來顯示全文,則應該顯示“ blahblah ...”。

我通過給圖例itemWidth提供一個固定的像素寬度來解決第一個要求,並將textOverFlow設置為“省略號”:

chartOptions.legend.itemStyle.width = $container.width() + "px";
chartOptions.legend.itemStyle.textOverflow = "ellipsis";

但是對於第二個要求,我將chart.legend.itemStyle.width更改為當前容器的寬度,並調用了chart.redraw() ,它並沒有真正重繪圖表。

`chart.legend.itemStyle.width = $container.width() + "px";
`chart.redraw()`

有什么辦法可以使用新的legend.itemStyle.width更新圖表?

Jsfiddle: https ://jsfiddle.net/scottszb1987/z5qv1t80/

干杯

對於您的情況,我建議添加一個window .resize()事件,然后使用更新的選項生成圖表的新版本。 這樣,您的圖例大小將拉入container元素的新寬度。

// whenever the window is resized, destroy the chart and redraw it using updated options
$(window).resize(function() {
    chart.destroy();
    chart = new Highcharts.Chart(getChartOptions($("#container")));
});

這是您的小提琴的更新版本,其中包含以下更改: https : //jsfiddle.net/brightmatrix/z5qv1t80/5/

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM