1

我正在尝试在我正在开发的一个相当简单的 d3 可视化中手动调整缩放级别。见:http: //jsfiddle.net/TXPcM/

缩放和平移后(使用 shift+click 缩小)按“默认缩放”按钮,然后尝试再次平移。您会注意到一个不和谐的转变,因为它“重置”到按下按钮之前的状态。

代码有点原型而且相当冗长——但请寻找 applyZoom 函数。这里的目的是重新应用缩放行为,因此希望清除它可能使用的任何缓存值。似乎不起作用。建议?

4

2 回答 2

1

这样做的方法是修改您的缩放对象,而不仅仅是修改(或在您的情况下重新创建缩放)。

所以抓住你的zoom对象并执行以下操作:

zoom.translate([x,y])
    .scale(scale); 
于 2015-02-11T11:31:58.330 回答
0

i did not look at your code but this d3 google group thread has the answer you're looking for, i think: https://groups.google.com/d/topic/d3-js/-qUd_jcyGTw/discussion

于 2012-08-14T18:46:42.580 回答