使用D3重置SVG的缩放

时间:2019-02-09 00:07:03

标签: javascript jquery d3.js

我可以根据需要缩放svg,现在,如果用户双击D3Map(svg)渲染到的div,我将尝试重置它。

我已经知道它是通过'zoom.transform(svg,yd3.zoomIdentit);'完成的不知何故,但我总是得到一个错误:

  

zoom.transform不是函数

在什么地方以及必须添加什么?

我打的电话

$('.worldmap').bind('dblclick', function() {
        zoom.transform(svg, d3.zoomIdentit);
}); 

缩放代码:

var zoom = d3.behavior.zoom()
    .scaleExtent([1, 10])
    .on("zoom", function () {
               let scale = d3.event.scale;
               g.attr("transform", "translate(" + d3.event.translate.join(",") + ")scale(" + scale + ")");
               g.selectAll("circle")
                    .attr("r", 3 / scale)
                    .attr("d", path.projection(projection));
               g.selectAll("path")
                    .attr("d", path.projection(projection));
        });

svg.call(zoom)
    .on("dblclick.zoom", null)
    .on("mousedown.zoom", null)
    .on("touchstart.zoom", null)
    .on("touchmove.zoom", null)
    .on("touchend.zoom", null);

0 个答案:

没有答案