[英]How to make the dc.js charts responsive
有没有办法让dc.js
图表响应?
我正在努力使图表适合桌面大小。
我正在使用Twitter Bootstrap 3.我将div的宽度存储到变量并将其传递给图表宽度。 这不会使图表响应。 但在首次加载时,图表会根据屏幕大小达到宽度。
但现在我面临一个挑战,我有一个不同的dc.js
图表文件。
我正在通过iframe
打电话。
当我通过iframe
调用它时,所有div的宽度都是0,并且网页中没有图表。
但是当我单独重新加载iframe
时,图表就出现了。
当我们点击该特定导航项时,我甚至尝试加载框架。 但即使这样对我也不起作用。
有人帮我克服了这个问题。
我已经设置了一个带有dc.js演示的plunker,我在调整大小时重新渲染,并获取容器元素的宽度来确定大小。 这是嵌入在iframe中并按原样工作。 我建议使用这个plunker来适应你的css,因为我只是做了最简单的iframe设置。 我想你做了类似的事情,所以我不确定你哪里出错了。希望这会有所帮助。
<body> <h1>Test</h1> <iframe src="iframe.html" class="iframe"></iframe> </body>
<body> <h2>inside iframe</h2> <div id="box-test"></div> <div id="pie-chart"></div> <script src="script.js" type="text/javascript"></script> </body>
var width = document.getElementById('box-test').offsetWidth;
chart
.width(width)
.height(480)
.margins({top: 10, right: 50, bottom: 30, left: 50})
.dimension(experimentDimension)
.group(speedArrayGroup)
.elasticY(true)
.elasticX(true);
window.onresize = function(event) {
var newWidth = document.getElementById('box-test').offsetWidth;
chart.width(newWidth)
.transitionDuration(0);
pie.transitionDuration(0);
dc.renderAll();
chart.transitionDuration(750);
pie.transitionDuration(750);
};
当您在dc.js图表实例上调用.width()
和.height()
方法(或根本不调用它们.width()
时传递null
,它将使用锚元素的宽度和高度(然后可以使用某些样式进行样式设置)来自bootstrap或其他一些响应式css框架的常青响应css类;))。
有关详细信息,请参阅: https : //github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#dc.baseMixin+height
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.