問題: d3v2 から d3v3 に移行すると、トランジションが機能しなくなりました。
アイデアは、新しいボックスが左からスライドするように、いくつかのボックスを画面に表示することです。要素の場所が変わると、新しい場所に移動する必要があります。
( https://github.com/mbostock/d3/wiki/Upgrading-to-3.0 )で移行ドキュメントを確認しました。コードは次のようになります。
elements = svg.selectAll(".element").data( d3.values(@mystuff.elements), (x)->x.id )
elements.enter().insert("g",".box")
.append("g")
.attr("class", "element")
.attr("id", (d)-> "elem_#{d.id}" )
.attr("transform", @element_start_position )
.call(@drag_action)
.on( "click", @on_element_click )
elements.transition().duration(750)
.each("start", () -> console.debug("start transition") )
.attr("transform", (d)-> @element_final_position )
element_start_position: (d)->"translate(0,#{d.y})"
element_final_position: (d)->"translate(#{d.x},#{d.y})"
私が見ているのは、enter()
機能しているが機能してupdate
いないということです。はconsole.debug()
呼び出されず、要素は開始位置に残されます。
スタックオーバーフローを助けてください、あなたは私の唯一の希望です...