我正在尝试在我正在开发的相当简单的d3可视化中手动调整缩放级别。请参阅:http://jsfiddle.net/TXPcM/
在缩放和平移后(使用shift +单击缩小)按“默认缩放”按钮,然后尝试再次平移。你会注意到一个震动的移动,因为它“重置”到按下按钮之前的状态。
代码有点像原型而且卷绕得很长 - 但是请查看applyZoom函数。这里的目的是重新应用缩放行为,因此,希望清除它可能使用的任何缓存值。似乎没有用。建议?
答案 0 :(得分:1)
执行此操作的方法是修改缩放对象,而不仅仅是修改(或者在您的情况下重新创建缩放)。
抓住你的zoom
对象并执行以下操作:
zoom.translate([x,y])
.scale(scale);
答案 1 :(得分:0)
我没有看你的代码,但这个d3 google群组线程有你想要的答案,我想: https://groups.google.com/d/topic/d3-js/-qUd_jcyGTw/discussion