2014-02-15 41 views
0

在d3縮放行爲中,對於線性刻度,我該如何逐漸增加變焦。我使用它像d3縮放行爲。以小增量增加刻度

var zoom = d3.behavior.zoom() 
    .x(x) 
    .y(y) 
    .scaleExtent([1, 10]) 
    .on("zoom", zoomed); 

如果我理解正確,圖表將放大到10倍。是不是像每個雙擊都會放大1倍,直到達到10倍?我怎樣才能使它更細步,像1,1.2x,1.4x,..

謝謝。

+0

我的第一想法是應用一些香草轉變的方向,但有[d3.interpolateZoom](https://github.com/mbostock/d3/wiki/Transitions)這樣的東西,這似乎是一個有趣的選擇。 – FernOfTheAndes

回答

2

縮放等級增加爲geometric series。也就是說,每次點擊時,它會加倍--1,2,4等等。默認的交互不允許你有更精細的步驟,但是你可以很容易地在你的處理程序代碼中做到這一點 - 沒有什麼需要你放大與縮放行爲的縮放值完全相同的步驟。也就是說,對於2的縮放級別,您可以將縮放因子設置爲1.2,對於4到1.4等等。

對於更一般的控制,您可能還想考慮在頁面上有另一個輸入元素(例如縮放級別的輸入框或滑塊)。