2014-07-14 28 views
1

我一直在nvd3工作一段時間。使用拖動行爲拖動nvd3線圖

我遇到過這樣的情況,我需要用鼠標拖動並對齊線條圖。 refer here for the pic

我用D3的功能

"d3.behaviour.drag().on("drag", move)" 

和移動功能將

function move(d) { 

     d3.select(this) 


     .transition() 
    //.duration(500) 
     .ease("linear") 
     .attr("transform", function(d) { 
      return "translate("+d3.event.x+")"; 
     }); 
    } 

的問題是,這是不是在nvd3圖工作,因爲d3.event.x不可用或可能以不同的方式提供。我找不到拖動的方法。

但是,如果你把硬編碼號碼一樣

return "translate(100)"; 

其工作是在畫面中。

任何人都可以在這種情況下幫助我找出nvd3中的d3.event.x功能。

任何幫助將不勝感激。

回答

1

我想出了這個問題。只需在變量中獲取d3.event.x並將該變量傳遞給translate函數即可。有效。

function move(d) { 
var xevent = d3.event.x; 

d3.select(this) 
    .transition() 
    .duration(500) 
    .ease("linear") 
    .attr("transform", function(d) { 
     return "translate("+xevent+")"; 
    }); 
}