d3.js在非svg元素上强制布局

d3.js在非svg元素上强制布局,d3.js,force-layout,D3.js,Force Layout,可以使用d3.js layout.force(重新)定位像div这样的非svg元素吗 如果div有位置:绝对位置可能left和top可以用作svg元素所用的x1和y1属性的等价物 目标是在IE8支持下对图像和菜单项产生一些强制效果。我知道svg节点可以是图像,但因为我需要支持IE8,所以这不是一个选项 如果不可能,与d3.js一起使用是否是一个稳定的选项 谢谢 **更新** D3很酷!!我开始了解它的诀窍了,它肯定可以在常规html元素(如divs)上使用“force”,如d3.layout.f

可以使用d3.js layout.force(重新)定位像div这样的非svg元素吗

如果div有
位置:绝对位置
可能
left
top
可以用作svg元素所用的
x1
y1
属性的等价物

目标是在IE8支持下对图像和菜单项产生一些强制效果。我知道svg节点可以是图像,但因为我需要支持IE8,所以这不是一个选项

如果不可能,与d3.js一起使用是否是一个稳定的选项

谢谢

**更新**

D3很酷!!我开始了解它的诀窍了,它肯定可以在常规html元素(如divs)上使用“force”,如
d3.layout.force()
基本上为每个“勾号”(或帧)提供x和y坐标,您可以随意使用。
ie:

很好用

使用
.call(force.drag)拖动确实会给您带来问题(如预期的那样)

萤火虫:

(container.ownerSVGElement || container).createSVGPoint is not a function
d3_svg_mousePoint()d3.js (line 3718)
container = div#nav
e = mousemove clientX=607, clientY=200
mouse()d3.js (line 3711)
container = div#nav
d3_behavior_dragPoint()d3.js (line 4481)
d3_behavior_dragDispatch()d3.js (line 4453)
type = "drag"
d3_behavior_dragMove()d3.js (line 4491)
l()d3.js (line 1871)
e = mousemove clientX=607, clientY=200
[Break On This Error]   

var point = (container.ownerSVGElement || container).createSVGPoint();

但是应该是可修复的。

原则上,D3中没有SVG特定的内容。您必须看看它在实践中是否适用于您的特定应用程序,但它听起来确实可行。请特别查看,其中有一个示例显示如何更新节点和链接位置。如果您更改该代码以修改div的相关位置属性,它应该可以工作。

下面是一个示例,显示svg、画布和div元素都共享相同的强制导向布局:

(container.ownerSVGElement || container).createSVGPoint is not a function
d3_svg_mousePoint()d3.js (line 3718)
container = div#nav
e = mousemove clientX=607, clientY=200
mouse()d3.js (line 3711)
container = div#nav
d3_behavior_dragPoint()d3.js (line 4481)
d3_behavior_dragDispatch()d3.js (line 4453)
type = "drag"
d3_behavior_dragMove()d3.js (line 4491)
l()d3.js (line 1871)
e = mousemove clientX=607, clientY=200
[Break On This Error]   

var point = (container.ownerSVGElement || container).createSVGPoint();