gpt4 book ai didi

angularjs - nvd3 图表开始在浏览器中被压扁

转载 作者:行者123 更新时间:2023-12-04 19:01:47 37 4
gpt4 key购买 nike

我已经在互联网上搜索了这个问题的解决方案,但还没有遇到过。我希望这里有人有这方面的经验,可以帮助我指出正确的方向。

我有一个使用 Angular-nvd3 创建的折线图,并且我正在使用 Bootstrap 进行响应。基本上我每行有两个图表。我遇到的问题是,当我第一次加载页面时,图表被挤压成一个小宽度。我没有在图表上设置宽度,以便它可以继承 100% 的宽度并填充容器。只要我对浏览器进行任何操作,例如打开控制台或调整浏览器大小,图表就会缩放到正确的宽度。我想知道是否有任何方法可以强制调整大小。我之前在使用 c3d3 时遇到过类似的问题,但使用 chart.resize() 解决了这个问题。我不知道 nvd3 是否有类似的方法,因为我对 nvd3 没有太多经验。我想知道是否有类似的方法可以使用,或者 d3 是否有一种纯粹的方法可以做到这一点。

以下是一些之前和之后的图片,以帮助可视化问题:

之前:enter image description here

打开控制台或以任何方式调整浏览器大小后,它会正确缩放:enter image description here

编辑:我应该补充一点,设置固定宽度可以规避问题,但随后固有的响应能力就会消失(出现新问题,即图形在较小的浏览器尺寸下重叠)

编辑:添加了一些我希望可以提供帮助的代码片段。我正在使用 Bootstrap 方式的行和列。我还在 JS 中声明图表选项

HTML

<div class="row">
<div class="col-sm-6">
<nvd3 id="inlet" options="inletOptions" data="inletData"></nvd3>
</div>
<div class="col-sm-6">
<nvd3 id="outlet" options="outletOptions" data="outletData"></nvd3>
</div>
</div>

JS
$scope.inletOptions = {
chart: {
type: 'lineChart',
height: 300,
margin : {
top: 20,
right: 20,
bottom: 40,
left: 55
},
x: function(d) { return d.x; },
y: function(d) { return d.y; }
}
};

最佳答案

对于那些遇到类似问题的人,请参阅以下帖子:

https://github.com/krispo/angular-nvd3/issues/259

http://plnkr.co/edit/ncT72d?p=preview

$scope.triggerResizeEvent = function() {
window.dispatchEvent(new Event('resize'));
}

关于angularjs - nvd3 图表开始在浏览器中被压扁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36087034/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com