2016-12-25 71 views
1

我在項目中使用谷歌圖表,但即時通訊很難讓他們響應。谷歌圖表響應

我看到了響應圖表上的其他例子,但我似乎無法讓它在我的情況下工作。 我所有的圖表都被渲染,之後它們的大小不會改變。

如果有人可以使這個圖表響應身份證欣賞它。謝謝:

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()函數。谷歌「響應谷歌圖表」),看看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

謝謝保羅。我現在正在使用類似的方法。我重新渲染窗口大小的圖表。但我希望能夠在不重新渲染的情況下實現響應。這是一個似乎只使用CSS的例子,但我似乎無法在我自己的圖表上重新創建它: http://jsfiddle.net/toddlevy/pyAz5/ –

+0

該示例似乎使用throttledresize事件來重繪它,而不僅僅是CSS。 – Paul

+0

哦!我沒有意識到......感謝保羅爲我提供啓發。我想用js是唯一的方法...考慮到你的答案實際上使圖表響應,我把它標記爲已接受。 –