Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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
Javascript 如何限制d3.js中svg某些元素的缩放_Javascript_D3.js_Svg - Fatal编程技术网

Javascript 如何限制d3.js中svg某些元素的缩放

Javascript 如何限制d3.js中svg某些元素的缩放,javascript,d3.js,svg,Javascript,D3.js,Svg,我使用D3.js创建了SVG,并添加了3个点。这些点包含文本和图像 以及连接这些点的线 g.insert("g"); var text = g2.selectAll("text") .data(formattedTopoData.features); var mark = g2.selectAll("image") .data(formattedTopoData.features); var l

我使用D3.js创建了SVG,并添加了3个点。这些点包含文本和图像

以及连接这些点的线

        g.insert("g");
        var text = g2.selectAll("text")
         .data(formattedTopoData.features);

        var mark = g2.selectAll("image")
        .data(formattedTopoData.features);

        var link = g.selectAll(".line_DEFAULT")
        .data(formattedTopoData.links);
我已经像这样附加了缩放回调

var zoom = d3.behavior.zoom()
     .translate([0, 0])
     .scale(1)
     .scaleExtent([1, 8])
     .on("zoom", function(){

        //svg.selectAll("path")
        g.style("stroke-width", 1.5 / d3.event.scale + "px");

        //svg.selectAll("path").
        g.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");};
现在,当我缩放3个对象(线、文本、图像)时,它们将被缩放

我想限制图像和文本的缩放

请帮忙。 图像看起来像这样

我创建了plunker:
这里我想用文字缩放地图。但我不希望缩放时文本看起来很大

缩放投影,而不是中的SVG。如果缩放投影,则点/节点不移动,但地图正在移动/缩放。您可以在此处看到示例“我希望测试(添加文本)”与“地图但测试”(添加文本)一起缩放不应该缩放也必须重置使用投影的所有对象的位置