我正在尝试在我正在开发的一个相当简单的 d3 可视化中手动调整缩放级别。见:http: //jsfiddle.net/TXPcM/
缩放和平移后(使用 shift+click 缩小)按“默认缩放”按钮,然后尝试再次平移。您会注意到一个不和谐的转变,因为它“重置”到按下按钮之前的状态。
代码有点原型而且相当冗长——但请寻找 applyZoom 函数。这里的目的是重新应用缩放行为,因此希望清除它可能使用的任何缓存值。似乎不起作用。建议?
我正在尝试在我正在开发的一个相当简单的 d3 可视化中手动调整缩放级别。见:http: //jsfiddle.net/TXPcM/
缩放和平移后(使用 shift+click 缩小)按“默认缩放”按钮,然后尝试再次平移。您会注意到一个不和谐的转变,因为它“重置”到按下按钮之前的状态。
代码有点原型而且相当冗长——但请寻找 applyZoom 函数。这里的目的是重新应用缩放行为,因此希望清除它可能使用的任何缓存值。似乎不起作用。建议?
这样做的方法是修改您的缩放对象,而不仅仅是修改(或在您的情况下重新创建缩放)。
所以抓住你的zoom
对象并执行以下操作:
zoom.translate([x,y])
.scale(scale);
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