Pra*_*tal 5 javascript graph cytoscape.js
我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点。
我怎样才能做到这一点?
我的方法:(效果不太好)
我可以通过单击创建一个节点,但无法确保创建的节点的位置位于我单击的位置。使用这样的东西:
$("#cy").click(function(event){
pos = getMousePosition(this, event)
cy.add([
{ group: "nodes", data: { id: "testid" }, position: pos },
]);
});
Run Code Online (Sandbox Code Playgroud)
我一直无法getMousePosition()正确定义。我应该如何定义这个函数以使节点呈现在正确的位置,而不管 cytoscape 画布的位置如何?
鼠标使用屏幕上渲染的坐标。如果您想在特定的渲染位置添加节点,最简单的方法是在渲染坐标中指定新节点位置,例如:
cy.add([
{ group: "nodes", data: { id: "testid" }, renderedPosition: rpos } // , ...
]);
Run Code Online (Sandbox Code Playgroud)
然后传递渲染的鼠标位置(相对于 cy.js div)变得微不足道,例如http://api.jquery.com/position/