gpt4 book ai didi

javascript - d3.js 圆形悬停动画

转载 作者:行者123 更新时间:2023-11-29 10:42:16 24 4
gpt4 key购买 nike

感谢您的光临。快速提问:

我有一个简单的网络图here .我已经在圆圈上分配了鼠标悬停效果。因此,当您悬停它时,通过增加其半径并将其乘以 3,圆圈会“突出显示”。

 function mouseoverC() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", d3.select(this).select("circle").attr("r") * 3);
}

function mouseoutC() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", d3.select(this).select("circle").attr("r") / 3);
}

当鼠标离开/离开时,它会将其分开以将其带回其原始半径。这样做的原因是因为圆半径不会对所有人都相同,它会有所不同。如果你做得很巧妙,现在它可以工作,但是如果你不等待动画完成并取出鼠标并快速将其重新放回,圆圈会不断增加,当然反之亦然,如果你在它的时候快速移动鼠标恢复到原来的状态,它变得非常小。

解决此问题的最佳方法是什么?

最佳答案

您可以在创建节点时为初始半径添加变量:

nodes = tasks.map(function(k){
var entry;
entry = {
name: k,
radius:10
};
if (map.get(k).fixed) {
entry.fixed = true;
entry.x = map.get(k).x;
entry.y = map.get(k).y;
}
return entry;
});

然后你像这样在鼠标悬停时改变他的大小:

function mouseoverC() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", function(d){return d.radius*3});
}

//hover opposite, to bring back to its original state
function mouseoutC() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", function(d){return d.radius});
}

关于javascript - d3.js 圆形悬停动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26511748/

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