2015-10-02 33 views
2

我需要使用d3構建兩個強制圖並使它們同時放大/縮小。我通過將zoom事件中的d3.event.scale()和d3.event.translate()屬性強制到兩個svgs上來實現這一目標;問題在於每個svg在從一個切換到另一個時都會以某種方式保存之前的轉換/縮放值。鏡像平移/縮放兩個svg元素

我使用這段代碼從D3的一個例子,以使雙方svgs平移/縮放

// Set up zoom support 
var zoom = d3.behavior.zoom() 
     .on("zoom", function() { 
      inner.attr("transform", 
         "translate(" + d3.event.translate + ")" 
         + "scale(" + d3.event.scale + ")"); }); 
svg.call(zoom); 

http://jsfiddle.net/c1qja29o/2/

http://www.screencast.com/t/Mtceb6o55XG

回答

0

的問題是,我宣佈一個新的每個svg.each()傳遞縮放處理程序。我應該只聲明一個縮放事件處理程序,併爲每個svg調用一個縮放事件處理程序。