0

問題: 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()呼び出されず、要素は開始位置に残されます。

スタックオーバーフローを助けてください、あなたは私の唯一の希望です...

4

1 に答える 1

1
.attr("transform",  (d)-> @element_final_position )

次のいずれかである必要があります。

.attr("transform",  (d) => @element_final_position )

またはより可能性が高い:

.attr("transform",  @element_final_position )
于 2013-09-09T01:55:29.567 に答える