在D3中使用字体真棒时链接无法呈现

时间:2014-06-02 21:14:38

标签: d3.js font-awesome

我目前正在构建一个使用Mike Bostock的D3布局示例绘制github repos的应用程序:http://mbostock.github.io/d3/talk/20111018/tree.html

我尝试渲染字体非常棒的字体而不是svg圈,我相信这是呈现圆圈的代码:

nodeEnter.append("svg:circle")
  .attr("r", 1e-6)
  .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });

我找到了similar question,当我尝试使用该代码时,它成功渲染了字体很棒的图标,但现在可链接文本虽然已呈现,但由于某种原因被隐藏:

linkable text rendered on the page but not visible

我尝试了操作代码,但无法弄清楚如何获取文本节点和链接文本以进行渲染。

另外,我感觉这个其他代码可能会干扰我的追加并导致此错误。这是完整的:

nodeEnter.append("svg:a")
  // make the links open in a new page
  .attr("target", "_blank")

  .attr("xlink:href", function(d) { 
    console.log('d.name -->', d.name);
    // d.data.path "" + d.name
    var url = "https://" + URLtoArr[0] + "/" + URLtoArr[1] + "/" + URLtoArr[2] + "/" + "tree/master" + "/";
    // if path is set (if it is NOT the root node), add it on to the end
    if(d.data !== undefined) {
      url += d.data.path; 
    }
    return url; 
    // https://github.com/AndyLampert/repository-file-tree-generator/blob/master/public/css/main.css
  })

  .append("svg:text")
  .text(function(d) { return d.name; })
  .attr("x", function(d) { return d.children || d._children ? -10 : 10; })
  .attr("dy", ".35em")
  .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
  .style("fill-opacity", 1e-6);

最后,这是我目前在heroku上的工作应用: http://github-file-tree-generator.herokuapp.com/

提前致谢!

1 个答案:

答案 0 :(得分:1)

文本图标正在显示,您可以从DOM和选择文本中看到,但它们几乎完全透明。

.style("fill-opacity", 1e-6); ==几乎看不见,但技术上并不隐藏

一些示例建议使用几乎为零的不透明度来创建可点击但不可见的内容(尽管您应该使用指针事件属性)。你必须偶然复制它。