【发布时间】:2014-02-25 15:43:13
【问题描述】:
我正在尝试基于以下两个示例应用约束和语义缩放行为:Constrained Zoom 和 SVG Semantic Zooming,用于我的树可视化。我可能一直在正确应用受约束的缩放部分,但是当我尝试集成语义缩放部分时它变得复杂和可疑:光标不会停留在特定的我缩放到的节点。我开始认为我应该只选择受限缩放或语义缩放,但不能同时选择两者。是否真的可以在树布局上结合两者(约束+语义缩放)?
这是我目前所做的努力:http://jsfiddle.net/glenn/GpjFN/。
缩放相关代码:
...
var zoom = d3.behavior.zoom()
.scaleExtent([1, 5])
.on('zoom', move);
function move() {
var t = d3.event.translate,
s = d3.event.scale,
width = viewportSize[0],
height = viewportSize[1];
t[0] = Math.min(width * (s - 1), Math.max(width * (1 - s), t[0]));
t[1] = Math.min(height * (s - 1), Math.max(height * (1 - s), t[1]));
zoom.translate(t);
viewport.attr('transform',
'translate(' + t + ')' + ' scale(' + s + ')');
// TODO: ???
};
svg.call(zoom);
【问题讨论】:
标签: javascript d3.js zooming