gpt4 book ai didi

javascript - 使用 d3.js 拖动圆与线之间的连接

转载 作者:行者123 更新时间:2023-11-27 23:08:51 28 4
gpt4 key购买 nike

我是 d3.js 的新手。我创建了三个圆圈。我希望圆圈可以拖放。我们还可以使用线在圆圈之间创建连接。这是我的代码:

var spaceCircles = [30, 70, 110];

var svgContainer = d3.select("body").append("svg")
.attr("width", 200)
.attr("height", 200);

var circles = svgContainer.selectAll("circle")
.data(spaceCircles)
.enter()
.append("circle");

var circleAttributes = circles
.attr("cx", function (d) { return d; })
.attr("cy", function (d) { return d; })
.attr("r", 20 )
.style("fill", function(d) {
var returnColor;
if (d === 30) { returnColor = "green";
} else if (d === 70) { returnColor = "purple";
} else if (d === 110) { returnColor = "red"; }
return returnColor;
});

最佳答案

为了实现这一点,您必须首先附加一个 mousedown() 函数

circles.on('mousedown', function(d) {
//detect if mouse is on a circle i.e if(d.type === "circle")
})

然后是 mousemove() 函数,您可以在其中执行拖动操作。最后是 mouseup() 函数,您可以在相关节点之间添加链接。

检查这个例子:http://bl.ocks.org/rkirsling/5001347

关于javascript - 使用 d3.js 拖动圆与线之间的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36355235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com