d3.js 如何使用d3js得到一个有百分比的svg元素的宽度?

laximzn5  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(218)

我试着把一个图表拉伸到一个div-father的尺寸,但是我实际上不能取div-father的尺寸,所以我不能改变图表的尺寸。
我有一个简单的HTML

<div style="height: 300px; width: 500px">
    <svg width="100%" height="100%"></svg>
</div>

这是我的js

var svg = d3.select("svg"),
    margin = 100,
    width = svg.attr("width") - margin,
    height = svg.attr("height") - margin

但是我读到attr("width")attr("height")都返回一个字符串,所以值应该是“100%"。我可以做些什么来使真实的尺寸基于div如何改变他的大小呢?

a14dhokn

a14dhokn1#

您 应该 使用 :
svg.node().getBoundingClientRect() , 以 取得 实际 的 长度 和 高度 值 。
例如 , 若 要 取得 特定 的 长度 和 高度 , 您 可以 使用 :

var clientRect = svc.node().getBoundingClientRect()
var width = clientRect.width
var height = clientRect.height

中 的 每 一 个
请 参阅 this question 的 答案 , 该 答案 与

相关问题