D3 中的编程放大

Programatic zoom in D3

本文关键字:放大 编程 D3      更新时间:2023-09-26

使用这里的代码模式,我想以编程方式实现语义缩放(放大或缩小)。 我不确定如何获得通过缩放增强的正确 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。放大和缩小函数应模拟在 SVG 中居中的鼠标滚轮事件。

以下是基于以下答案的解决方案:http://jsbin.com/dociwuvacu/1

我相信

我成功地更新了你的小提琴,但如果没有,这是你需要的代码类型:

function zoomIn() {    
    zoomer.scale(zoomer.scale()+.1);
    zoomer.event(svg);
}
function zoomOut() {
    zoomer.scale(zoomer.scale()-.1);
    zoomer.event(svg);
}