【发布时间】:2014-10-22 15:54:46
【问题描述】:
感谢您的光临。快速提问:
我有一个简单的网络图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);
}
当鼠标离开/离开时,它会将它分开以使其回到原来的半径。这样做的原因是因为圆的半径不会对所有人都一样,它会有所不同。现在,如果您巧妙地完成它,它就可以工作,但是如果您不等待动画完成并取出鼠标并迅速将其重新放回原处,则圆圈会不断增加,当然反之亦然,如果您在它的时候快速移动鼠标回到原来的状态,它变得非常小。
解决此问题的最佳方法是什么?
【问题讨论】:
-
您需要在开始时获取并存储每个圆的半径,然后在翻转时获取存储的半径(而不是当前半径)并将其乘以 3,在推出时执行相同但/ 3
-
啊,好吧,我想在创建圆时创建一个自定义属性并将原始半径存储在那里。只是想看看也许有更有效的方法来做到这一点。谢谢你
-
为什么不设置一个固定的数字呢?或者你在某个地方有不同的圆圈大小?
-
每个圈子的圈子大小都不一样
标签: javascript jquery d3.js