一些上下文:
我做了一个强制布局,并将 div 附加到我的 svg g 节点,这样我就可以显示漂亮的文本段落。我正在尝试创建淡出插入的 div 的过渡。
问题:
每当我在我的 div 的 opacity 样式属性上启动转换时,它就会从定位流中弹出。我已经在链接的fiddle中隔离了这个问题。它与强制布局无关,但我正在使用外部元素,以便可以将 html 放置在基于 svg 的强制布局中。
这是一个例子,小提琴:
var foreign = d3.select("body")
.append("svg")
.attr("height", 200)
.attr("width", 300)
.append("svg:g")
.attr("transform",
"translate(40, 20)")
.append("svg:foreignObject")
.attr("width", "100px")
.attr("height", "50px");
var outer = foreign.append("xhtml:div")
.attr("class", "outer");
var inner = outer.append("xhtml:div")
.attr("class", "inner")
.text("inner div");
outer.transition()
.duration(3000)
.style("opacity", 0.0);
以及来自小提琴的屏幕截图(注意它似乎是如何复制 div 的)
转换前的状态:
过渡期间的状态:
我在 OS X 10.6.8 上使用 Chrome 28 来查看它。它在 Safari 上变得更加时髦,元素闪烁进出可见性。