js将画布宽度/高度设置为0,并且不显示任何内容
Charts.js sets canvas width/height to 0 and displays nothing
我试图使用Charts.js使默认的行图,他们在他们的例子中动态显示,并把它放在一个div,我弹出的用户点击。我的代码是这样的:
this.chartCanvas = document.createElement('canvas');
this.div.appendChild(this.chartCanvas);
this.chartCanvas.style.height = '480px';
this.chartCanvas.style.width = '900px';
this.chartCanvas.width = 900;
this.chartCanvas.height = 480;
this.ctx = this.chartCanvas.getContext('2d');
this.chart = new Chart(this.ctx).Line(data);
当我调用"new Chart"时,我的画布高度和宽度被设置为0,正如我在检查器中看到的那样。当我注释掉这个调用时,我的画布有适当的宽度/高度,并显示为人们所期望的。如果我在检查器中手动改变画布的高度/宽度,我的图表仍然不显示。
我的"data"对象就是我直接从折线图示例中剪切和粘贴的:http://www.chartjs.org/docs/#line-chart-example-usage
谁能提供一些我可能会出错的地方,我是一个全新的图书馆。
在我的例子中,画布需要用CSS display: block;
问题似乎是画布及其所有父节点在图表调用时不能显示none,因此,如果您在弹出窗口中使用图表,则需要显示弹出窗口,构造图表,然后隐藏弹出窗口。
如图所示,如果您尝试在隐藏的div中构造一个图表,然后在超时时显示它,它将不起作用。
如果您显示div,制作图表,然后隐藏div,它确实有效。
http://jsfiddle.net/bjudheoq/4///This will break it
//this.div.style.display = 'none';
this.chart = new Chart(this.ctx).Line(data);
this.div.style.display = 'none';
上面的代码可以工作,但是如果取消第40行注释,它就不能了。
我找到了一个选项:
options: {
responsive: false,
...
这与默认的true
冲突。我不知道它现在能不能正常工作。当然,要为画布及其父元素设置宽度和高度
您的代码工作正常,除了一个错别字。这条线…
this.chartCanvs.style.width = '900px';
…应该是这样:
this.chartCanvas.style.width = '900px';
// ^ your code is missing this 'a'
这里是一个JS的错误修复:http://jsfiddle.net/dun5dhne/
另外,我强烈建议在遇到问题时打开浏览器的开发人员控制台。这种事情很容易在控制台上被抓住。
相关文章:
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- D3.js生成有效的SVG,但不显示任何内容
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- jquery Ajax没有;不要显示任何信息(既不显示成功也不显示失败)
- javascript函数,该函数不起作用,但不会显示任何错误
- JavaScript 未显示任何警报对话框
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 谷歌地图没有显示任何标记
- 没有使用Highcharts显示任何图形
- jQuery导航下拉菜单未显示..任何想法
- AngularJS:console.log不显示任何内容
- ng-repeat不显示任何内容
- ng-重复不显示任何内容
- extjs在chrome中可以正常工作;不要在firefox或ie中显示任何内容
- 使用javascript在标签上不显示任何内容
- console.log在FF插件生成器中没有显示任何内容
- TypeAhead.js没有显示任何输出Rails
- 使用ajax运行php脚本不会显示任何结果
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 输入类型“文本”的 ng-init 不会在文本框内显示任何数据