d3js 4得到路径转换的坐标

时间:2017-09-02 22:18:08

标签: javascript animation d3.js svg

我想知道动画路径转换是否可以返回最后绘制的位置? ..通过 attrTween 我们可以获得补间范围[0-1]但曲线位置??

例如:

 path
    .attr("stroke-dasharray", t1 + " " + t1)
    .attr("stroke-dashoffset", t1)
    .transition(d3.transition()
                            .duration(lap)
                            .ease(d3.easeLinear)
                            .attrTween( "e", function(d) {
                                    return function( t ) {}})
   .attr("stroke-dashoffset",0)

感谢的

1 个答案:

答案 0 :(得分:0)

可以像这样定义补间及其工厂:

function tween (t) {
    var totalLength = this.getTotalLength();
    //a SVGPoint object with x/y properties
    var position = this.getPointAtLength(total * t);
    //...do something
}

function tweenFactory (d) {
    return tween.bind(this);
}

如果在执行工厂时路径已经存在于DOM中并且路径长度没有改变,totalLength的计算显然可以移动到工厂函数。