您可以制作一个 d3 文本框,保留相同的属性代码,例如 .attr("x", ect) 并且它的工作原理相同;
您可以将属性类应用于它 .attr("class", "anyname") 以允许使用 d3 中的外来对象来操作或调用对象的值(尽管还没有太多关于它的文档并且外来对象没有' t 似乎允许 .transition() 方法,但所有其他功能保持不变。
/*Imaging width and height being of an SVG object
width=screen.width, height=screen.height;
and rows+Cols of that of an object (using d3 conventionality
to assign document.getElementById=('inputbox').value;
amazingly adding a third dimension of selection to style='resize: none;' works
*/
var foreign1 = mainBox.append("svg:foreignObject")
.attr("width", 600).attr("height", 700).attr("x", 93).attr("y", 300).attr("rx", 20).attr("ry", 20)
.style("resize", 'none')
.append("xhtml:body")
.html("<textarea style='font: Times; resize: none; font-size: 15pt; border: 1px solid lightgray; outline: none; border-radius: 10px;' id='inputbox' class='foo' rows='13' cols='40' type='text'> Message... </textarea>");
我在 .html 和 .style 中放了一些元素,resize none 以制作一个无法调整大小的文本区域,接受用户输入:)