0

私のウェブサイトで display:none と display:block を利用しようとしています。スタイルは次のとおりです。

<style>
  .div_class {
    display: none;
  }
</style>

本体の内容は次のとおりです。

<div class="div_class">
   <div id="graph_id"></div>
</div>

スクリプトは次のとおりです。

    <script>
      // some event occurs and sets the display property of div_class to block as follows
      $(".div_class").css('display','block'); 

      var BarGraph = echarts.init(document.getElementById('graph_id'), theme);
      BarGraph.setOption({  
       // properties that are set for the echart 'graph_id'
      });
    </script>

これdisplay: block;により、div が表示されますが、設定されている echart プロパティはレンダリングされません。div は空白で表示されます。その理由は何ですか?私は理解することができません。親切に助けてください。ありがとう :)

*************************** 編集 ********************** ****************
また、div onload を非表示にしてクリックすると表示できるので、タイトルが誤解を招く可能性があると思います。しかし、後のレンダリングは、私が特定の問題に直面しているところです。

4

4 に答える 4

0
 BarGraph .setOption({

と同じように動作します

 BarGraph.setOption({

? (スペースを取り除く)

また、すべてのコードをラップしてみてください

$(document).ready(function() {
    ***code here***
});

編集:

https://ecomfe.github.io/echarts-doc/public/tutorial-en.html#Introduction%20of%20ECharts%20features%0D

^ そこからコードを取得し、先頭に jquery を追加し、チャート ブロックを div.container に display:none でラップし、クリック イベントを作成しました

$(document).on('click', function() { $(".container").show(); myChart.setOption(option); });

作業スニペット:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- including ECharts file -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="http://echarts.baidu.com/dist/echarts.common.min.js"></script>

</head>
<body>
	<style>
    	.container {
    		display: none;
    	}
    </style>
    <!-- prepare a DOM container with width and height -->
  click anywhere!
    <div class="container">
    	<div id="main" style="width: 600px;height:400px;"></div>
    </div>
    <script type="text/javascript">
        // based on prepared DOM, initialize echarts instance
        var myChart = echarts.init(document.getElementById('main'));

        // specify chart configuration item and data
        var option = {
            title: {
                text: 'ECharts entry example'
            },
            tooltip: {},
            legend: {
                data:['Sales']
            },
            xAxis: {
                data: ["shirt","cardign","chiffon shirt","pants","heels","socks"]
            },
            yAxis: {},
            series: [{
                name: 'Sales',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };

        // use configuration item and data specified to show chart
    	$(document).on('click', function() {
    		$(".container").show();
    		myChart.setOption(option);
    	});
    </script>
</body>
</html>

于 2016-10-25T06:53:39.090 に答える
0

div を表示した後に BarGraph を再レンダリングします

于 2016-10-25T06:37:40.793 に答える
-1
    <script>
      // some event occurs and sets the display property of div_class to block as follows

      $(".div_class").css('display','block').promise().done(function(){

          //draw graph here

          var BarGraph = echarts.init(document.getElementById('graph_id'), theme);
          BarGraph .setOption({  
           // properties that are set for the echart 'graph_id'
          });

      }); 


    </script>

上記のコードを試してください。私は .promise() を追加しました それが行うことは、css「display:block;」の後でのみです が適用され、グラフ描画プロセスが開始されます

于 2016-10-25T07:05:31.897 に答える
-1

プロパティが に設定されてchart.jsいる場合、チャートを描画できません で試しました。スペースを維持することはできますが、スペースを維持することはできませんdisplaynonevisibility:hiddendisplay:none

<style>
  .div_class{
      visibility:hidden;
  }
</style>

css を上記のコードに置き換えてみてください。これがお役に立てば幸いです:)

詳細については、次の投稿を参照してください: Difference between visibility:hidden and display:none?

于 2016-10-25T06:40:19.000 に答える