2017-08-27 31 views
0

我想使面板可见/不可见的按钮。使面板隐形amchart

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

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

我搜索了一下,没有找到样本。

有没有可能?


由于@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(); 
+0

即使您可以使用CSS或任何其他外部方法隐藏面板,我建议使用amCharts API方法(移除面板并调用“validateNow”)。如果你不这样做,你可能会收到意想不到的错误信息,比如你提到的错误信息,因为amCharts认为面板仍然在那里(技术上来说)。 – Robbert

+1

感谢Robbert,最后我用amchart API删除。更新了我的文章。 – whitebear

回答

1

通过查看演示的来源,你会看到第二个股票小组得到的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本身并不知道,这个面板是隐藏的,所以它不会重新调整第一股面板的高度时,“删除”了。

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

+0

真的吗?找不到amcharts-stock-panel-div-stockPanel1类...这是由JavaScript生成的? – whitebear

+0

是的。 amCharts将类名分配给大多数元素(HTML和SVG节点)。您可以使用浏览器的开发人员检查器工具找到它们 – Robbert

+0

非常感谢您在控制台中找到了类名,并成功隐藏了面板。 – whitebear