【问题标题】:Chart.js: trouble with resizing on window resizeChart.js:调整窗口大小时出现问题
【发布时间】:2015-07-24 00:36:38
【问题描述】:

使用此代码,当我拖动窗口时,我的图表会调整大小,但当我按下 windows 上的最大化按钮或 mac 上的全屏按钮时不会。这只是一个chart.js 问题吗?这是我用于调整图表大小的 JS。

// -- draw the chart ---
$(document).ready(function(){
  var ctx = null;
  chart= null;
  var width = 0;
  var screenWidth = $(window).width();
  setTimeout(function(){
    width = $('##chart').parent().width();
    $('##chart').attr("width",width-30);
    ctx = $("##chart").get(0).getContext("2d");
    chart = new Chart(ctx).Bar(data, options);

    // --- resize ---
    $( window ).resize(function() {
      var newScreenWidth = $(window).width();
      if(screenWidth != newScreenWidth){
        width = $('##chart').parent().width();
        $('##chart').replaceWith('<canvas id="chart" width="650" height="175"></canvas>');
        $('##chart').attr("width",width-30);
        ctx = $("##chart").get(0).getContext("2d");
        chart = new Chart(ctx).Bar(data, options);				
      }
    });
  },500);

【问题讨论】:

    标签: javascript jquery charts chart.js


    【解决方案1】:

    我从来没有遇到过 chart.js 的调整大小问题,您不需要订阅调整大小事件,因为调整大小已经由 chart.js 处理,具体取决于画布容器的大小。当您使用此 mac 浏览正常工作的 chart.js 网站时,您是否遇到此问题?

    来自chartjs.org

    如果浏览器改变大小,Chart.js 将调整您的图表大小,并为该大小提供完美的缩放粒度

    顺便说一句,请查看您的控制台,$('##chart') 不是有效的 jQuery 选择器,应该会产生错误。我不知道您发布的代码如何工作。

    【讨论】:

    • 感谢您的评论。我不知道为什么,但是当我没有调整大小功能时,chart.js 不会为我调整大小。也许自从我们第一次开始使用它以来,他们已经进行了更新。这很奇怪,因为这个确切的功能适用于我们的其他页面。双#是因为我们使用的是冷聚变。
    • 好吧,我不知道冷聚变,如果你设法在 JSFiddle 中隔离你的问题,我们可以看到发生了什么。您还可以检查最新版本的 chart.js 是否仍然存在此问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2011-09-26
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2021-12-27
    相关资源
    最近更新 更多