2013-04-26 36 views

回答

8

試試這個工作對我說:

<div id="example"> 
    <div id="chart"></div> 
</div> 

<script> 
    // Chart Data Source 
    var exampleData = [ 
     { "FromDept": "ACT", "ToDept": "NSW", "Year": 2010, "Total": 101 }, 
     { "FromDept": "ACT", "ToDept": "NSW", "Year": 2011, "Total": 1001 }, 
     { "FromDept": "ACT", "ToDept": "NSW", "Year": 2012, "Total": 501 }, 
     { "FromDept": "ACT", "ToDept": "YNT", "Year": 2010, "Total": 501 } 
    ]; 


    // Function to create Chart 
    function createChart() { 

     // Creating kendo chart using exampleData 
     $("#chart").kendoChart({ 
      title: { 
       text: "Sample" 
      }, 
      dataSource: 
      { 
       data: exampleData, 
      }, 
      legend: { 
       position: "bottom" 
      }, 
      chartArea: { 
       background: "" 
      }, 
      seriesDefaults: { 
       type: "line" 
      }, 
      series: [{ 
       field: "Total", 
      }], 
      valueAxis: { 
       labels: { 
        format: "${0}" 
       } 
      }, 
      categoryAxis: { 
       field: "Year" 
      }, 
      tooltip: { 
       visible: true, 
       format: "{0}%" 
      } 
     }); 
    } 

    // Resize the chart whenever window is resized 
    $(window).resize(function() { 
     $("#chart svg").width(Number($(window).width())); 
     $("#chart svg").height(Number($(window).height())); 
     $("#chart").data("kendoChart").refresh(); 
    }); 

    // Document ready function 
    $(document).ready(function() { 

     // Initialize the chart with a delay to make sure 
     // the initial animation is visible 
     createChart(); 

     // Initially 
     $("#chart svg").width(Number($(window).width())); 
     $("#chart svg").height(Number($(window).height())); 
     $("#chart").data("kendoChart").refresh(); 

    }); 
</script> 

+1

試試這個它的作品對我的高度和寬度.. $(窗口).resize(函數(){ $( 「#圖SVG」)寬(編號($(窗口).WIDTH())); $( 「#圖表SVG」)高度(編號($(窗口).height())); $( 「#圖表」)的數據( 「kendoChart」)刷新(); }); – Muthu 2013-04-29 10:56:02

+0

確保所有必需的kendo文件都包含在您的頁面中。 – Muthu 2013-04-29 11:17:01

+0

雅我得到了解決方案,謝謝你muthu – user2314027 2013-04-30 07:39:57

6

嘗試......

$(window).resize(function() { 
    $("#chart svg").width(Number($('.k-content').width())); 
    $("#chart svg").height(Number($('.k-content').height())); 
    $("#chart").data("kendoChart").refresh(); 
}); 
+0

使它能夠在上面的代碼中不能使用比例..因爲jQuery高度()和寬度()將給像素值 – Muthu 2013-04-29 10:03:48

+0

完美。謝謝 – chris 2013-11-15 14:01:24

5

您可以連接到窗口的resize事件,當它改變時,重置圖表上的寬度選項。

window.onresize = function() { 
    var newWidth = window.innerWidth * .9 // 90% of screen width 

    var chart = $("#chart").data("kendoChart"); // get chart widget 
    chart.options.chartArea.width = newWidth; // set new width 
    chart.redraw(); // redraw the chart 
}; 
+0

嗨..我試過這一個,但沒有更改應用。圖表寬度是相同的沒有更改應用於圖表寬度。 – user2314027 2013-04-29 04:58:44

+0

這可能是你的網頁的東西。這是上面的代碼在jsFiddle示例中工作:http://jsfiddle.net/rally25rs/TPy2j/1/ – CodingWithSpike 2013-04-29 13:31:24

+0

非常感謝!這個對我有用! :) – 2014-02-24 16:15:08

0

還有一點。您可能還需要重繪之前禁用動畫和後

$(window).resize(function() { 
    $("#chart").data("kendoChart").options.transitions = false; 
    $("#chart").data("kendoChart").refresh(); 
    $("#chart").data("kendoChart").options.transitions = true; 
}); 
相關問題