2016-12-25 18 views
1

私はプロジェクトでGoogleのグラフを使用していますが、レスポンスに苦労しています。Googleの応答性の高い応答を作成する

私はレスポンシブなチャートで他の例を見ましたが、私のケースではうまくいかないようです。 私のすべてのチャートはレンダリングされ、その後はサイズが変わりません。

誰かがこのグラフを反応的にすることができれば、それを感謝します。ありがとう:チャートの

function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Year'); 
    data.addColumn('number', 'Revenue'); 
    data.addColumn('number', 'Average Revenue'); 
    data.addRows([ 
     ['2004', 1000, 630], 
     ['2005', 1170, 630], 
     ['2006', 660, 630], 
     ['2007', 1030, 630] 
    ]); 

    var options = { 
     title: 'Revenue by Year', 
     seriesType: "bars", 
     series: {1: {type: "line"}}, 
     vAxis: {title: 'Year', 
       titleTextStyle:{color: 'red'}}, 
     colors:['red','black'] 
    }; 

    var chart = new google.visualization.ComboChart(document.getElementById('chart')); 
    chart.draw(data, options); 
} 

google.load("visualization", "1", {packages:["corechart"]}); 
google.setOnLoadCallback(drawChart); 

フィドル: Fiddle

それは親の割合幅を取ることができれば、私はまだコメントできませんので、それは

答えて

0

素晴らしいことだ、私が持っていますそれを私自身が価値ある答えとは考えていないにもかかわらず、これを答えとして提出すること。

目的の動作を得るためにウィンドウのサイズを変更するたびにdrawChart()関数を呼び出す必要があります。 Googleの「応答性の高いGoogleチャート」)、first linkをご覧ください。これはjQueryのを使用して行うことができる方法について説明します。

$(window).resize(function(){ 
    drawChart(); 
}); 

ちょうどJavaScriptを使用して、this answer on Stack Exchange by Sohneeは、resizeイベント時に機能をトリガーする方法について説明します:上記のリンクの

window.onresize = doALoadOfStuff; 

function doALoadOfStuff() { 
    //do a load of stuff 
} 

すべての信用への著者の両方。

+0

Paulありがとうございます。私は今同様のアプローチを使用しています。私は、ウィンドウのサイズ変更時にグラフを再描画します。しかし、私は再レンダリングせずに応答性を達成できることを願っています。ここでは、CSSを使用しているようだが、自分自身のチャートでそれを再作成するように見える例がある: http://jsfiddle.net/toddlevy/pyAz5/ –

+0

この例では、throttledresizeイベントを使ってそれを再描画するように見えるCSS。 – Paul

+0

ああ!私はそれを理解していませんでした...ポールに私を教えてくれてありがとう。私は、jsを使うのが唯一の方法だと思っています...あなたの答えが実際にグラフを反応させることを考慮すると、受け入れられたとマークします。 –

関連する問題