16

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

4

2 回答 2

28

这里讨论了调整 jqplots 的大小。

为了在调整浏览器大小时使其工作,请将 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>

于 2012-07-21T00:38:41.657 回答
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();
    });
}
于 2013-11-21T17:41:52.507 回答