Javascript 加载完成后D3.js在特定路径上缩放

Javascript 加载完成后D3.js在特定路径上缩放,javascript,function,d3.js,startup,topojson,Javascript,Function,D3.js,Startup,Topojson,我想在D3.js路径上触发事件。下面是一个工作示例: 那么,我怎么说一个特定的路径是由zoomIntoArea函数触发的呢。我的意思是在最后我有一些路径,我想在启动时加载一个特定的路径,而不点击它。我已经试过了: zoomIntoArea(d3.select("lines")) 和其他一些,但肯定不会返回正确的元素。您不需要缩放行为来显式缩放路径,例如: var bounds = path.bounds(d), dx = bounds[1][0] - bounds[0][0],

我想D3.js路径上触发事件。下面是一个工作示例:

那么,我怎么说一个特定的路径是由zoomIntoArea函数触发的呢。我的意思是在最后我有一些路径,我想在启动时加载一个特定的路径,而不点击它。我已经试过了:

zoomIntoArea(d3.select("lines"))

和其他一些,但肯定不会返回正确的元素。

您不需要缩放行为来显式缩放路径,例如:

var bounds = path.bounds(d),
        dx = bounds[1][0] - bounds[0][0],
        dy = bounds[1][1] - bounds[0][1],
        x = (bounds[0][0] + bounds[1][0]) / 2,
        y = (bounds[0][1] + bounds[1][1]) / 2,
        scale = .9 / Math.max(dx / width, dy / height),
        translate = [
            width / 2 - scale * x, 
            height / 2 - scale * y];

svg.transition()
    .duration(750)
    .attr("transform", "translate(" + 
        translate + ")scale(" + 
        scale + ")");

不,可能是重复的,但不是。因为我已经有了一个中心函数。但我想在加载完成后激活它。谢谢你的回答,但这不是我想要的。我需要d3.json中的一些东西。。。也就是说,以第一条路为中心。这需要在最后左右触发。或者您可以用代码更改JSFIDLE示例并将其展示给我。也许我就是不懂你的意思?谢谢。好的,现在我知道把代码放在哪里了。是的,那确实有效。但是我怎么能用zoomIntoArea这个函数呢。我的意思是为什么又是同样的代码。谢谢。好了,现在zoomIntoArea(特色系列);他正在工作。但我以前真的用这种方法测试过。这里发生了奇怪的事情。好的,问题解决了。非常感谢。