D3 中的程序化缩放
Programatic zoom in D3
使用代码模式 here,我想以编程方式实现语义缩放(放大或缩小)。我不确定如何获得通过缩放增强的正确 x、y 和 scaleExtent 项:
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.call(d3.behavior.zoom().x(x).y(y).scaleExtent([1, 8]).on("zoom", zoom));
参见 JSfiddle here。 zoomIn 和 zoomOut 函数应模拟以 SVG 为中心的鼠标滚轮事件。
这是基于以下答案的解决方案:http://jsbin.com/dociwuvacu/1
我相信我已经成功更新了您的 fiddle,但如果没有,这是您需要的代码类型:
function zoomIn() {
zoomer.scale(zoomer.scale()+.1);
zoomer.event(svg);
}
function zoomOut() {
zoomer.scale(zoomer.scale()-.1);
zoomer.event(svg);
}
使用代码模式 here,我想以编程方式实现语义缩放(放大或缩小)。我不确定如何获得通过缩放增强的正确 x、y 和 scaleExtent 项:
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.call(d3.behavior.zoom().x(x).y(y).scaleExtent([1, 8]).on("zoom", zoom));
参见 JSfiddle here。 zoomIn 和 zoomOut 函数应模拟以 SVG 为中心的鼠标滚轮事件。
这是基于以下答案的解决方案:http://jsbin.com/dociwuvacu/1
我相信我已经成功更新了您的 fiddle,但如果没有,这是您需要的代码类型:
function zoomIn() {
zoomer.scale(zoomer.scale()+.1);
zoomer.event(svg);
}
function zoomOut() {
zoomer.scale(zoomer.scale()-.1);
zoomer.event(svg);
}