2013-07-19 2 views
8

Я пытаюсь разместить диаграмму с использованием Chart.js в строке с span6. Chart.js использует <canvas> и нуждается в height и width. Я установил height в то, что мне нужно, и width - 100%, но он не растягивается, чтобы заполнить div, который установлен на span6.Bootstrap grid не работает с холстом

Любые идеи?

<div class="row" style="padding-top: 20px;"> 
    <div class="span6"> 
    <div id="daily"> 
     <canvas id="daily-chart" width="100%" height="400px"></canvas> 
    </div> 
    </div> 
</div> 

ответ

0

в файле JavaScript, где вы добавляете все варианты для диаграммы

new Chart(ctx).Line(data, options); 

//Boolean - If we want to override with a hard coded scale 
    scaleOverride : true, 
+0

также проверьте это: http://stackoverflow.com/questions/11894607/how-do-i-dynamically-scale-the-html5-canvas-element – acudars

+0

Я ранее задал опции null. Чтобы использовать их, я просто создаю массив опций? var options = [scaleOverride: true] ;? –

+0

Вы посмотрели на это: http://www.chartjs.org/docs/ Line.defaults = {scaleOverride: true} – acudars

16

мне удалось решить вашу проблему!

Пожалуйста, проверьте это jsFiddle.

Попробуйте изменить размеры панелей, чтобы увидеть их в действии.

В принципе, вы вызываете функцию, которая реагирует на изменение размера окна:

$(window).resize(respondCanvas); 

, который запускает выборку ширины и высоты родительского элемента, он инкапсулируется в и затем перерисовывает диаграмму.

function respondCanvas() { 
    c.attr('width', jQuery("#daily").width()); 
    c.attr('height', jQuery("#daily").height()); 
    //Call a function to redraw other content (texts, images etc) 
    myNewChart = new Chart(ct).Bar(data, options); 
} 

Вы можете настроить все крошечные биты, как ваши собственные идентификаторы, классы, ширину и высоту.

+6

Буду признателен, если вы отметите это как ответ, если вы удовлетворены. – acudars