我想要一個鼠標滾輪變焦添加到我的炎爆:
我所做的是我編輯的這一段代碼:
d3.behavior.zoom()移動圖形來代替角落中心
var zoom = d3.behavior.zoom()
.scaleExtent([1, 10])
.on("zoom", zoomed);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width/2 + "," + height * .52 + ")")
.call(zoom);
function zoomed() {
svg.attr('transform', 'translate(' + d3.event.transform.x + ',' + d3.event.transform.y + ') scale(' + d3.event.scale + ')');
//svg.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
的問題是,當頁面加載的一切似乎是確定,但是當mouswheel用於滾動旭日在左上角結束:
我能夠改變這個代碼來解決這個問題:
function zoomed() {
svg.attr("transform", "translate(" + width/2 + "," + height * .52 + ")scale(" + d3.event.scale + ")");
}
sunburst現在停留在中間,但是這不會縮放到光標的位置,並且不允許用戶進一步縮小。
任何建議如何我可以放大光標位置(如在第一個代碼示例中)沒有在左上角的sunburst disapering?
欲瞭解完整的代碼,請參閱JSfiddle,它不在這裏工作,但運行本地工作。
我試圖替換爲您提供的一個「放大」功能,但是縮小進一步仍然不可能? – CodeNoob
這是另一個**問題。我只在這裏解決中心問題。請保持每個問題一個問題。 –
我在我的問題中解決了這個問題:「這不會縮放到光標的位置,並且不允許用戶進一步縮小。」爲了清楚起見,我應該在最後一行加上。我會編輯它。你能否在你的回答中解決這個問題? – CodeNoob