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 添加到 head,将图表块包装在 div.container 中,显示:无,创建点击事件

$(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.jsThe chart can't be draw if displayproperty is set to none. 事情是visibility:hidden保留空间,而display:none不是保留空间

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

尝试用上面的代码替换 css。我希望这能帮到您 :)

您可以参考以下帖子以获取更多信息:可见性之间的区别:隐藏和显示:无?

于 2016-10-25T06:40:19.000 回答