使面板隐形amchart

时间:2017-08-27 21:08:36

标签: javascript amcharts

我想通过按钮使面板可见/不可见。

在此sample删除/添加面板中。 但是在添加时,我需要再次制作面板和设置。

我想让面板可见/不可见而不删除。

我用Google搜索并没有找到样本。

有可能吗?

感谢@Robbert回复

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

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

然而,它不会重新调整每个面板的大小。

如果我打电话给

所以我试试这个。

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

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

但是,如果您在validateNow()

时使用percentHeight = 1;

发生此错误。

  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();

1 个答案:

答案 0 :(得分:1)

通过查看演示的来源,您会看到第二个Stock Panel的类名为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本身并不知道这个面板是隐藏的,所以当"删除"时,它不会重新调整第一个库存面板的高度。它

我会建议遵循示例中所示的方法。