How to set the origin while drag in d3.js in v4 [d

2019-01-18 12:05发布

问题:

This question already has an answer here:

  • d3 version 4 workaround for drag origin 1 answer

I am facing a jump issue when I drag a <rect>.

In this question they suggest to use drag.origin() but D3 v4 version doesn't have this method anymore.

Can some body suggest how to solve the jump issue?

回答1:

Instead of origin use subject.

So this

 .origin(function() { 
        var t = d3.select(this);
        return {x: t.attr("x"), y: t.attr("y")};
    })

will become

 .subject(function() { 
        var t = d3.select(this);
        return {x: t.attr("x"), y: t.attr("y")};
    })

Working fiddle using d3 v4 is here

API reference here