D3.js - 在Force-Layout

时间:2016-10-07 02:46:15

标签: javascript d3.js force-layout

我的Codepen中有以下代码能够渲染sprite标志(来自CSS),但它不在应该基于节点位置的位置。

事实上,我能够从顶部的标志sprite中拖动节点!

查看某些console.logs,调用节点时,d.x的{​​{1}}和d.y位置似乎没有通过。

我不确定如何解决此问题

function ticked()

Codepen

1 个答案:

答案 0 :(得分:0)

你非常接近!我花了很长时间才弄明白。

我最终在项目目录中创建了一个填充了国家/地区png的标记文件夹。然后使用国家/地区代码动态加载它们。

以下是我解决问题的方法:

const node = svg.selectAll(".flag")
    .data(data.nodes)
    .enter().append("image")
    .attr("xlink:href", d => require(`./flag/${d.code}.png`))
    .attr("width", radius)
    .attr("height", radius)
    .call(d3.drag()
        .on("start", dragstarted)
        .on("drag", dragged)
        .on("end", dragended))