いくつかのコンテキスト:
強制レイアウトを作成し、svg g ノードに div を追加して、テキストの適切な段落を表示できるようにしました。挿入された 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 ではさらにファンキーになります。