NVD3 在加载时重绘图表 'show'

NVD3 redraw chart on load 'show'

我正在尝试在 loadshow.. 上重新绘制 NVD3 图表,但它不起作用,因为我需要为我的页面制作图表 display:none; 但图表是在重新加载后 width;25px; 但我设置为 100% 的 window 宽度..

当我调整浏览器大小时一切正常,只是当我加载页面时它不会工作...我为此编写了这段代码:

 // SLIDEUP
  $('#slide').click(function(){
    $('#border2').slideToggle(500);
    $('#slide1').slideToggle(500);
  });

  $('#slide').click(function (e) {
    e.preventDefault()
    $('#slide1').tab('show')
    $('#chart1 svg').trigger('resize'); // Added this line to force NVD3 to redraw the chart
});
   /* CHART */
   #slide1 {display: none; position: relative; width: 100%; overflow: hidden; right: 25px;}
   #chart1 { width: 100%; height: 25em; }
<div id="slide1">
    <div class="col-xs-12" id="margin-chart">
        <svg id="chart1"></svg>
    </div>
</div>

已解决:

这不是一个非常清晰的版本,但效果很好,我希望我能帮助别人..

我刚刚通过 .animation 设置了高度 0,以便图表可以完全加载,然后通过 jQuery 我设置了 .animation 以进行高度扩展并且它完美地工作.. 这是 NVD3 或其他图表的代码(使用 NVD3 和 Rickshawn 图表测试)

  $('#slide').click(function(){
    $('#border2').slideToggle(500);
  });

  $("#slide").click(function(){
    if($('.slide1').hasClass('showtable')) {
        $('.slide1.showtable').animate({height:300},500).removeClass('showtable');
  } else { 
        $('.slide1').animate({height:0},500)
        $('.slide1').addClass('showtable');
      }
  });
   /* CHART */
   .slide1 { position: relative; width: 100%; right: 25px;}
   .slide1.showtable {height: 0;}
    #chart1 {height: 300px;}
<div class="slide1 showtable">
     <svg id="chart1"></svg>
</div>