2013-04-26 8 views

Antwort

8

Try this funktioniert für mich:

<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

Probieren Sie dies funktioniert mir Höhe und Breite .. $ (Fenster) .resize (function() { $ ("# Diagramm Svg"). Width (Anzahl ($ (window) .width())); $ ("# chart svg"). height (Anzahl ($ (window) .height())); $ ("# chart"). data ("kendoChart"). refresh(); }); – Muthu

+0

Stellen Sie sicher, dass alle erforderlichen Kendo-Dateien in Ihrer Seite enthalten sind. – Muthu

+0

Ya ich habe die Lösung danke Muhu – user2314027

6

Try this ...

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

Sie nicht Prozentsatz in der obigen Schnipsel .. weil jQuery Höhe() und Breite() geben Pixelwert – Muthu

+0

perfekt nutzen können. Danke – chris

5

Sie auf das Resize-Ereignis des Fensters anbringen kann, und wenn sie sich ändert, auf der Karte die Breite Option zurückgesetzt.

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 ..Ich habe versucht, aber keine Änderungen anwenden. Die Diagrammbreite ist gleich, keine Änderungen werden auf die Diagrammbreite angewendet. – user2314027

+0

Es könnte dann etwas mit Ihrer Seite sein. Hier ist der obige Code, der in einem jsFiddle-Beispiel funktioniert: http://jsfiddle.net/rally25rs/TPy2j/1/ – CodingWithSpike

+0

vielen Dank! Für mich geht das! :) –

0

Ein weiterer Punkt. Auch können Sie die Animation vor dem Neuaufbau deaktivieren und aktivieren sie nach

$(window).resize(function() { 
    $("#chart").data("kendoChart").options.transitions = false; 
    $("#chart").data("kendoChart").refresh(); 
    $("#chart").data("kendoChart").options.transitions = true; 
}); 
Verwandte Themen