Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以使用D3动态更改div的大小?_Javascript_Svg_D3.js - Fatal编程技术网

Javascript 是否可以使用D3动态更改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

我有d3代码生成这个svg。它是一个较大的动态图的片段,该图在一个组元素的foreignobject中的div中有一个图像

<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>