2013-04-26 47 views

Trả lời

8

Hãy thử điều này làm việc với tôi:

<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

Hãy thử nó làm việc với tôi cả chiều cao và chiều rộng .. $ (cửa sổ) .resize (function() { $ ("# biểu đồ svg"). Width (Số ($ (cửa sổ) .width())); $ ("# chart svg") chiều cao (Số ($ (cửa sổ) .height()); $ ("# chart"). data ("kendoChart"). refresh(); }); – Muthu

+0

Đảm bảo tất cả các tệp kendo cần thiết được bao gồm trong trang của bạn. – Muthu

+0

Ya Tôi nhận được giải pháp cảm ơn bạn muthu – user2314027

6

Hãy thử này ...

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

Bạn không thể sử dụng tỷ lệ trong đoạn mã trên .. vì jQuery chiều cao() và chiều rộng() sẽ cho giá trị pixel – Muthu

+0

hoàn hảo. cảm ơn – chris

5

Bạn có thể gắn với sự kiện thay đổi kích thước của cửa sổ và khi nó thay đổi, thiết lập lại các tùy chọn chiều rộng trên biểu đồ.

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

Hi .. Tôi đã cố gắng này nhưng không có thay đổi được áp dụng. Chiều rộng biểu đồ là giống nhau không có thay đổi được áp dụng cho chiều rộng biểu đồ. – user2314027

+0

Nó có thể là một cái gì đó với trang của bạn sau đó. Đây là đoạn mã trên làm việc trong một ví dụ jsFiddle: http://jsfiddle.net/rally25rs/TPy2j/1/ – CodingWithSpike

+0

cảm ơn rất nhiều! Nó làm việc cho tôi! :) –

0

Một điểm nữa. Ngoài ra bạn có thể muốn vô hiệu hóa các hoạt hình trước khi vẽ lại và kích hoạt nó sau

$(window).resize(function() { 
    $("#chart").data("kendoChart").options.transitions = false; 
    $("#chart").data("kendoChart").refresh(); 
    $("#chart").data("kendoChart").options.transitions = true; 
}); 
Các vấn đề liên quan