Javascript 是否可以使用D3动态更改div的大小?
我有d3代码生成这个svg。它是一个较大的动态图的片段,该图在一个组元素的foreignobject中的div中有一个图像Javascript 是否可以使用D3动态更改div的大小?,javascript,svg,d3.js,Javascript,Svg,D3.js,我有d3代码生成这个svg。它是一个较大的动态图的片段,该图在一个组元素的foreignobject中的div中有一个图像 <svg> <g class = "node" transform = "translate(711.2977697849274,120)"> <circle class = "cirBG" r = "70"></circle> <foreignobject class = "fO
<svg>
<g class = "node" transform = "translate(711.2977697849274,120)">
<circle class = "cirBG" r = "70"></circle>
<foreignobject class = "fObj" x = "-25" y = "-25" height = "50" width = "50" overflow = "visible">
<div class = "logo"
style = "background-image: url(imgs/ppl/gbProfile.png); height: 50px; width: 50px; background-size: 50px 50px; background-position: 0px 0px; background-repeat: no-repeat;"></div>
</foreignobject>
</g>
</svg>
我看到了一些Jquery的例子,如果它是唯一的选项,但试图使它对现有的d3库保持简单,我将使用它。任何帮助都将不胜感激d3风格似乎很管用。您是否使用d3选择了
logoDiv
以下代码适用于我:
var logoDiv = d3.select( ".logo" );
logoDiv.style('background-color',"blue");
logoDiv.style('height','200px')
JsFiddle:
此外,您可能应该为div使用xhtml
名称空间,因为它不是在foreignObject中推断出来的:
<foreignobject class = "fObj" x = "-25" y = "-25" height = "50" width = "50" overflow ="visible">
<xhtml:div class = "logo" style = "..."></xhtml:div>
</foreignobject>
您是否尝试改为调整外来对象的大小?@MarcoCI是的,无论如何都必须这样做,因为div包含在其中。不过它不会调整div的大小。太棒了,谢谢克里斯托弗·奇奇!是的,我用D3来选择,现在它工作了。我以前肯定有其他冲突的标签或其他事情。由于某种原因,xhtml阻止加载背景图像。
<foreignobject class = "fObj" x = "-25" y = "-25" height = "50" width = "50" overflow ="visible">
<xhtml:div class = "logo" style = "..."></xhtml:div>
</foreignobject>