2016-12-25 74 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是唯一的方法...考虑到你的答案实际上使图表响应,我把它标记为已接受。 –