Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在单个自定义缩放功能中选择多个svg文本_Svg_D3.js_Zooming - Fatal编程技术网

如何在单个自定义缩放功能中选择多个svg文本

如何在单个自定义缩放功能中选择多个svg文本,svg,d3.js,zooming,Svg,D3.js,Zooming,我正在使用d3的缩放功能,但无法缩放两个不同的文本(标签)。 文本代码:(他们正在工作) 缩放代码:(第二部分不工作) 现在的问题是如何保持text2部分中的位移(d.y+20;}),因为它们在缩放操作期间重叠。。。我也使用变量而不是文本,但它们都不起作用。。有什么帮助吗?你能做一把小提琴吗?嗨,这是代码,但它不起作用(这是我第一次使用jfiddle) var texts = canvas.selectAll("text") .data(nodes)

我正在使用d3的缩放功能,但无法缩放两个不同的文本(标签)。 文本代码:(他们正在工作)

缩放代码:(第二部分不工作)


现在的问题是如何保持text2部分中的位移(d.y+20;}),因为它们在缩放操作期间重叠。。。我也使用变量而不是文本,但它们都不起作用。。有什么帮助吗?

你能做一把小提琴吗?嗨,这是代码,但它不起作用(这是我第一次使用jfiddle)
   var texts = canvas.selectAll("text")
              .data(nodes)
              .enter();


   texts.append("text")
        .attr("class", function(d) { return d.children ? "parent" : "child"; })
        .attr("x", function(d) { return d.x; })
        .attr("y", function(d) { return d.y; })
        .attr("dy", ".35em")
        .attr("text-anchor", "middle")
        .style("opacity", function(d) { return d.r > 20 ? 1 : 0; })
        .text(function(d) {return d.children ? "" : d.name;; });


   texts.append("text")
        .attr("class", function(d) { return d.children ? "parent" : "child"; })
        .attr("x", function(d) { return d.x ; })
        .attr("y", function(d) { return d.y + 20; })  // for not overlapping name and the title
        .attr("dy", ".45em")
        .style("opacity", function(d) { return d.r > 20 ? 1 : 0; })
        .text(function(d) {return d.children ? "" : d.title; });
      function zoom(d, i) {
         var k = r / d.r / 2;
         x.domain([d.x - d.r, d.x + d.r]);
         y.domain([d.y - d.r, d.y + d.r]);

       var t = canvas.transition()
                      .duration(d3.event.altKey ? 7500 : 750);

     t.selectAll("text")
             .attr("x", function(d) { return x(d.x); })
             .attr("y", function(d) { return y(d.y); })
             .style("opacity", 0.15 });


     t.selectAll("text")
              .attr("x", function(d) { return x(d.x); })
              .attr("y", function(d) { return y(d.y) + 20 })
              .style("opacity", 0.15 });
      }