使面板不可见 amchart

Make Panels invisible amchart

我想通过按钮制作面板visible/invisible。

在此 sample remove/add 面板中。 但是添加的时候需要重新做面板和设置

我只想制作面板 visible/invisible 而不是删除。

我用谷歌搜索了一下,没有找到示例。

可以吗??


感谢@Robbert回复

我可以隐藏面板。像这样。

    $(".amcharts-stock-panel-div-stockPanel1").hide();

但是它不会重新调整每个面板的大小。

如果我打电话给

所以我这样尝试。

$(".amcharts-stock-panel-div-stockPanel1").hide();
chart.panels[1].percentHeight = 1;
chart.validateNow();

它隐藏面板并调整每个面板的高度。

但是,如果在 percentHeight = 1;

时使用 validateNow()

发生此错误。

  amcharts.js:26 Uncaught TypeError: Cannot read property 'translate' of undefined
    at b.fixVLine (amcharts.js:26)
    at b.adjustBalloonCoordinate (serial.js:17)
    at b.showBalloon (amcharts.js:5)
    at b.handleCursorMove (serial.js:8)
    at b.dispatchMovedEvent (amcharts.js:27)
    at b.syncWithCursorReal (amcharts.js:28)
    at b.syncWithCursor (amcharts.js:28)
    at b.handleCursorChange (amstock.js:2)
    at b.a.inherits.b.fire (amcharts.js:1)
    at b.dispatchMovedEvent (amcharts.js:27)

我的最终解决方案是这样的,不是使用css,而是准备变量panelBack用于面板备份。

//removing ...
pos = //panel position.
var panelBack = chart.panels[pos];
chart.removePanel(chart.panels[pos]);
chart.validateNow();

//adding...
chart.addPanelAt(panelBack,1);
chart.validateNow();

通过查看演示的源代码,您会看到第二个 Stock 面板的类名是 amcharts-stock-panel-div-stockPanel1。您可以使用 CSS:

隐藏它
.amcharts-stock-panel-div-stockPanel1 {
  display: none;
}

.amcharts-stock-panel-div-stockPanel1 * {
  /* hide SVG nodes as well */
  visibility: hidden;
}

然而,amCharts 本身并不知道这个面板是隐藏的,所以它不会在 "removing" 时重新调整第一个股票面板的高度。

我建议按照示例中的方法进行操作。