2017-08-27 12 views
0

パネルをボタンで表示/非表示にしたいと考えています。パネルを非表示にするamchart

in this sampleパネルを削除/追加します。 しかし、追加するときは、パネルと設定をもう一度行う必要があります。

パネルを表示/非表示にして削除しないようにしたいと考えています。

私は周りのグーグルとサンプルが見つかりませんでした。

可能でしょうか? @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(); 
+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ノード)にクラス名を割り当てます。あなたはブラウザのDeveloper Inspectorツールを使ってそれらを見つけるでしょう。 – Robbert

+0

コンソールでクラス名を見つけて、パネルを隠すことに成功してありがとうございます。 – whitebear

関連する問題