我有幾個圖形設置爲放大容器,它的效果很好。但是,在初始加載時,縮放級別太靠近。有沒有設置初始縮放級別以避免首先縮小的方法?我熟悉.scale()
方法,但沒有任何實施它的運氣。這是要走的路還是有我缺少的東西?D3.js設置初始縮放級別
這裏是我迄今一切有關放大:
var margin = {top: 20, right: 120, bottom: 20, left: 120},
width = 50000 - margin.right - margin.left,
height = 120000 - margin.top - margin.bottom;
var x = d3.scale.linear()
.domain([0, width])
.range([0, width]);
var y = d3.scale.linear()
.domain([0, height])
.range([height, 0]);
var tree = d3.layout.tree()
.size([height, width])
.separation(function(a, b) { return (a.parent == b.parent ? 1 : 2)/a.depth; });
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.x, d.y]; });
function zoom(d) {
svg.attr("transform",
"translate(" + d3.event.translate + ")"+ " scale(" + d3.event.scale + ")");
}
var svg = d3.select("body").append("svg")
.attr("width", width + margin.right + margin.left)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.attr("pointer-events", "all")
.call(d3.behavior.zoom()
.x(x)
.y(y)
.scaleExtent([0,8])
.on("zoom", zoom))
.append('g');
svg.append('rect')
.attr('width', width*5)
.attr('height', height)
.attr('border-radius', '20')
.attr('fill', 'sienna');
由於您使用的SVG變換'scale'您變焦,爲什麼不設置一個比例值靜態,讓你想要的縮放級別? – 2013-04-24 08:31:53
這聽起來很棒!我怎麼做? – 2013-04-24 14:54:07
拉爾斯,靜態設置的比例值究竟如何? – 2013-04-28 17:39:05