3

当我在我的 d3 力有向图上使用醉酒时,我遇到了一个问题:当我将醉酒重力设置为西时,醉酒从我圈子的左上角开始。我怎样才能让它从我圈子的右侧开始?

这是我在 d3 中使用的代码示例:

var node = vis.selectAll("g.node")
    .data(json.nodes)
    .enter().append("svg:g");

node.append("svg:circle")
    .attr("r", function(d){return d.credits *5+"px";})
    .style("fill", "orange");

$('svg circle').tipsy({
    gravity: 'w',
    html: true,
    title: function() {
        var d = this.__data__,
            name = d.name;
        return name;
    }
});

编辑在这个问题中:https ://stackoverflow.com/a/10806220/1041692他们说如下:

您可以尝试将工具提示添加到与实际圆圈重叠的 svg:g 中,但宽度和高度为零。目前它正在使用边界框并将工具提示放在边缘。玩弄醉醺醺的选项也可能会有所帮助。

但是要么我做错了,要么它不起作用,它并没有解决我的问题。

编辑 2这个问题也取决于浏览器,在 chrome 中,tipsy 元素附加在圆圈的左上角,而我希望它附加在圆圈右侧的中间。在 Firefox 中,醉酒出现在整个网页的左上方。

4

1 回答 1

3

D3 Tipsy 教程实际上使用了 Tipsy 的修改版本:

http://bl.ocks.org/1373263

稍微调整一下以正确计算 SVG 元素的边界框。所以复制那个源代码,而不是使用从 Tipsy 网站下载的 Tipsy。

于 2013-01-23T19:23:34.033 回答