我在这里查看了另一个 q (单击时 d3 javascript 备用颜色),并且想知道如何实现对更改的过渡。
我稍微重写了代码,以便切换功能改变圆圈的位置而不是颜色。
var SVG = d3.select("body")
.append("svg")
.attr("width", 300)
.attr("height", 300);
var togglex = (function(){
var currentx = 50;
return function(){
currentx = currentx == 50 ? 200 : 50;
d3.select(this).attr("cx", currentx);
}
})();
SVG.append("circle")
.style("stroke", "gray")
.style("fill", "white")
.attr("r", 20)
.attr("cx", 50)
.attr("cy", 50)
.on("click", togglex);
因此,togglex 函数在单击时会移动圆圈。我试图在 .on("click", toggle) 之前和之后都进行转换,但它不起作用。(我可以理解为什么它没有,它是一个功能,而不是屏幕上的位置)。我也尝试过将过渡构建到函数本身,但这也不起作用,至少不是我如何做到的。(再次,我明白为什么这也行不通)。
那么我该怎么做呢?