2016-12-12 47 views
0

我在項目中使用nvd3s lineWithFocusChart。我的客戶希望能夠通過使用開始和結束切換調整畫筆的範圍,但不希望拖動「移動畫筆範圍」的功能。我第一次嘗試是使事件處理程序返回false,如果檢測到的舉動:nvd3:停用刷子的移動?

chart.focus.dispatch.on("brush.start", function(evt) { 
       if (d3.event.mode === "move") { 
        console.log("Aborting move operation"); 
        d3.event.sourceEvent.stopPropagation(); 
        d3.event.sourceEvent.preventDefault(); 
        return false; 
       } else { 
        console.log("Ok"); 
        return true; 
       } 
      }); 

這不工作 - 雖然我可以克利移動和調整大小區分,從事件處理程序仍然允許雙方返回操作。我認爲事件處理程序中的代碼在之後執行。

我想避免更改庫的原始源代碼,因爲它通過npm包含,並會破壞任何更新機制和項目在其他系統上的新安裝。

有什麼建議嗎?提前致謝!

回答

0

你可以只用CSS很容易地做到這一點:

/*Only permit resize */ 
/*Remove ability to drag/ double-click focus */ 
    .nv-brush>.background{ 
     display:none; 
    } 
/*Remove ability to move focus */ 
    .nv-brush>.extent{ 
     display:none; 
    } 

如果你想刪除調整大小,只留下移動焦點的能力:

/*Only permit move */ 
/*Remove ability to drag/ double-click focus */ 
    .nv-brush>.background{ 
     display:none; 
    } 
/*Remove ability to resize focus*/ 
    g.resize{ 
     display:none; 
    }