cells.append('rect')
.attr('x', function (d) { return d.x; })
.attr('y', function (d) { return d.y; })
.attr('height', function (d) { return d.dy; })
.attr('fill', function (d) { return d.children ? null : color(d.parent.name); })
cells.append('text')
.attr('x', function (d) { return d.x + d.dx / 2 })
.attr('y', function (d) { return d.y + d.dy / 2 })
.attr('fill', 'white')
.attr('font-size', 14)
.text(function (d) {
if (d.name.length < cells.rect.width) {
return d.name;
}
});
どうしてか分かりません
cells.rect.width
動作しませんか?しかし、私が知りたいのは、図形にテキストを追加する前に、図形の幅を確認する方法です。
また、形状の幅を配列にプッシュしてから、インデックス ループを使用して配列をループし、名前の長さがボックスの幅よりも長いかどうかを確認しました。それに関する問題は、形状が作成されるときに、最大の面積を持つ形状 (ボックス) が最初に作成されることです。一方、テキストが追加されるときは、右下から左上に向かって開始されます。
テキストの長さとピクセルが 2 つの異なる単位であることは理解していますが、単純な比率に変換して入れます。画面に既に描画されている四角形の幅を取得するにはどうすればよいですか?