javascript - C3.js 图例在隐藏/显示 div 时重叠。如何防止这种情况?
问题描述
当我加载一个页面时,会生成一个相当简单的图表:
function showSetters() {
$("#div1").show();
chartRef.flush();
}
function showHatchers() {
$("#div1").show();
}
$("#div1").hide();
var chartRef = createChart();
function createChart() {
var chart = bb.generate({
bindto: "#div1",
data: {
columns: [
['Months', 30, 200, 100, 400, 150, 250],
['data2', 50, 20, 10, 40, 15, 25]
],
types: {
Months: 'bar',
}
},
axis: {
rotated: true
}
});
}
该图表在 Works 中加载得非常好。但是,当我第一次做 $("#div1").hide(); 并且,在创建图表之后,一个 $("#div1").show(); 传说是重叠的。
随着flus()添加它给出:“无法读取未定义的属性刷新”我错过了什么?
我怎样才能防止这种情况发生?
谢谢,迈克
解决方案
如果 div 被隐藏并且您在其中创建图表,则会错误计算边界。在显示它包含的 div 后尝试在图表上调用 flush()
https://jsfiddle.net/5k0hjnmt/
function createChart() {
var chart = c3.generate({
bindto: "#div1",
data: {
columns: [
['Months', 30, 200, 100, 400, 150, 250],
['data2', 50, 20, 10, 40, 15, 25]
],
types: {
Months: 'bar',
}
},
axis: {
rotated: true
}
});
return chart;
}
$("#div1").hide();
var chartRef = createChart();
$("#div1").show();
chartRef.flush(); // comment this out for a blank chart
推荐阅读
- python - 如果选择!=“y”或选择!=“是”,布尔“或”运算符不会返回正确的结果:
- asp.net-core - 无法在 POST 调用中接收来自 Route 和 Body 的值
- powerbi - 如何从我的数据表中的一个位置获取一个值并将其放入一个新列中
- javascript - 使用 VS Code Live Server 打开与使用鼠标垫打开时,开发工具中的脚本元素不同
- ruby-on-rails - 如何访问 belongs_to 属性的父级
- c# - 如何将数据从类文件传递到剃须刀页面?
- python - Django 表单检索唯一列表
- python - TypeError:不支持的格式字符串传递给 Tensor.__format__
- datagrid - 如何开始在材质ui DataGrid中编辑新行
- python - 我无法在 python 中使用 email.message 在电子邮件正文中添加图像