我的页面的不同标签(bootstrap nav-pill标签)中有不同的图表。当我将图形设置为响应时,非活动选项卡的宽度和高度属性计算为零,因此不会呈现非活动图形。我试图在点击事件中定义和渲染图形,但这没有用。
jsFiddle:http://jsfiddle.net/n2fole00/17nhjjp9/
<ul class="nav nav-pills">
<li class="active"><a data-toggle="tab" href="#one" class="blue-tabs">One</a></li>
<li><a data-toggle="tab" href="#two" class="blue-tabs">Two</a></li>
<div class="tab-content">
<div id="one" class="tab-pane fade in active">
<canvas id="myChart" width="200" height="100"></canvas>
</div>
<div id="two" class="tab-pane fade">
<canvas id="myChart2" width="200" height="100"></canvas>
</div>
</div>
var data = {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
datasets: [
{
label: "My First dataset",
fillColor: "red",
strokeColor: "red",
pointColor: "red",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "red",
data: [40, 35, 38, 40, 35, 40,]
}
]
};
var data2 = {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
datasets: [
{
label: "My First dataset",
fillColor: "red",
strokeColor: "red",
pointColor: "red",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "red",
data: [25, 25, 25, 25, 35, 25,]
}
]
};
var ctx = document.getElementById("myChart").getContext("2d");
var ctx2 = document.getElementById("myChart2").getContext("2d");
var myLineChart = new Chart(ctx).Line(data, { responsive: true });
var myLineChart2 = new Chart(ctx2).Line(data2, { responsive: true });
可以采取哪些措施来解决这个问题?
感谢。
答案 0 :(得分:1)
每次在标签之间切换时,您似乎需要重新绘制图表。 如果您只调整窗口大小,则会看到正在呈现的图表...
调用一些触发器来销毁myLineChart2,然后再次启动它。