Echartsコンソールのアラート domの幅や高さを取得できない
あるプロジェクトを書き、jspページにechartsで円グラフを描いたのですが、円グラフがどうしても2つの四角の背景色で出てこず、ページ単体を抜き出してタブに入れたら、円グラフが普通に表示されてしまい、非常に困惑しています。
そして、コンソールを開いてみると、コンソールに警告メッセージが表示されていました。domの幅や高さを取得できません!」という警告メッセージが表示されました。
さらに混乱しています。明らかに幅と高さを設定したのに、どうして取得できないのでしょうか?また、コンソールを開いてページを更新すると円グラフが出て、コンソールを閉じて更新するとまた円グラフが出なくなることがわかりました。
そこでググってみると、多くの方がJsで幅と高さをリセットして、その上で
$(window).on('resize',function(){//Screen size adapts, resets container height and width
resizeMainContainer();
mainChart.resize();
});
試してみたが、役に立たなかった。後に"a paper and ink"のブリーフブックで初めてわかったことです。
コンテナのheight/widthプロパティがパーセンテージ形式になっていると、echoが警告して、うまくチャートが生成されないのです。そのため、divコンテナのheight widthはpxで指定する必要があります。
しかし、画面サイズはそれぞれ違うので、死ぬほど書いても適応性が低いし、パーセンテージを使わないのもあまり良くないので、筆者は上の方法を使い、そのまま使ってみたところ、以下のようになりました(コメントの真ん中の行に注目)。
// DOM (Document Object Model) が読み込まれ、ページ (画像を含む) が完全にレンダリングされたときに幅と高さを計算する必要があり、そうしないとパーセント値しか得られません。
<! -------------------------------- フォーカス開始 -------------------------------->
//set style width length otherwise echarts won't get it.
$('#pic2').width($('#pic2').width());
$('#pic2').height($('#pic2').height());
// Initialize the echarts instance based on the prepared dom
var myChart = echarts.init(document.getElementById('pic2'),'light');
// Here, 'light' must also be written for initialization, I tried leaving it out, but it still doesn't come out either
<! -------------------------------- フォーカス終了 -------------------------------->
// Specify the configuration items and data for the chart
var option = {.... omitted};
// Display the chart using the configuration items and data just specified.
myChart.setOption(option);
について
echarts.init(dom,'light');
また、公式サイトでinitのパラメータを検索してみましたが、「light」が何のためにあるのかわかりませんでしたので、読者の方でご存知の方がいらっしゃいましたら、お気軽に下のコメント欄にご記入ください
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例