调整浏览器大小时jqplot调整图表大小

时间:2012-07-20 18:49:39

标签: jqplot

在调整浏览器大小时,是否有一种简单的方法可以自动调整jqplot图表的大小?我一直在寻找谷歌,但没有找到任何东西。

2 个答案:

答案 0 :(得分:26)

讨论调整jqplots的大小here

要在调整浏览器大小时使其工作,请将replot函数与window.resize事件绑定:

$(window).resize(function() {
      plot1.replot( { resetAxes: true } );
});

运行代码:

$(document).ready(function(){
    var plot1 = $.jqplot ('container', [[3,7,9,1,4,6,8,2,5]], {});
    
    $(window).resize(function() {
          plot1.replot( { resetAxes: true } );
    });
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.8/jquery.jqplot.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.8/jquery.jqplot.min.css">
     
<div id="container"></div>

答案 1 :(得分:5)

我发现,如果你的图表上有很多选项,那么使用replot并不总能给出一致的结果。我发现有复杂图形处理窗口大小调整的唯一方法就是让它变得残酷并将其破坏并重建它。

function () {

    var plot;

    var renderGraph = function() {
        plot = $.jqplot('chartId', yourChartData, yourChartOptions);
    }

    renderGraph();

    var resizeGraph = function() {
        if (plot)
            plot.destroy();
        renderGraph();
    }

    $(window).resize(function() {
        resizeGraph();
    });
}