2017-08-27 30 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