角度4 + D3v4:拖动圆圈不能与缩放一起正常工作

时间:2017-11-02 04:48:02

标签: angular d3.js

我正在尝试在Angular 4应用程序中创建一个D3强制导向图(https://github.com/d3/d3/blob/master/API.md#forces-d3-force)。

它正确地拖动它的自我工作,缩放和平移是由它自己工作,但当你同时使用它们(拖动和缩放)时,它停止工作不正确。

我拖动一个圆圈,当我停止拖动时,看起来圆圈仍然被选中并继续拖动。

我创建了一个示例项目,可以在此处找到代码:https://github.com/danielamigos/angular-graphs

要查看实际操作,请点击此处:https://danielamigos.github.io/angular-graphs/dist/index.html

1 个答案:

答案 0 :(得分:0)

正如rioV8所提到的,这个问题是节点平移和画布平移是同时进行的。因此,解决方案是在拖动节点时停止平移画布。这可以通过在拖动节点时停止事件的传播来完成。因此,在 dragstarted(d)事件处理程序中,在开头添加以下代码行:

namespace Test { 
    int myVoid(void);    // declaration
    class yourClas;      // declaration

    class myClass{       // definition
        public:
            myClass();
            ~myClass();
            void myFunction(void); // declaration which belongs to defined class
    }
}

void myVoid() {  
// definition, but compiler can't be sure this is the function 
// that you mention in the namespace or a new function declaration.  
}

void myClass::myFunction(void){ 
// absolutely definition for the method of the corresponding class 
}