javascript - D3 V4 设置初始缩放级别

标签 javascript d3.js

我刚开始使用 D3 V4,但我无法使用平移和缩放功能。问题是我希望初始比例值大于 1,所以我使用

zoom.scaleTo(svg, 2);

但是,一旦我平移或缩放,比例就会重置回 1。

这是 JSFiddle 上这种行为的示例,我做错了什么?

JSFiddle

最佳答案

问题是:

var svg = d3.select("body").append("svg")
    .attr("width", 600)
    .attr("height", 600)
  .call(zoom)
  .append("g");

您正在将 group 元素而不是 svg 元素分配给变量 svg

zoom 已正确应用于 svg 元素,但是当您调用 zoom.scaleTo(svg, 2) 时,您缩放的是组元素,而不是 svg元素。

这可以通过首先创建 svg 元素并将其分配给 svg 变量,然后再创建和分配组元素来解决。

var svg = d3.select("body").append("svg")
    .attr("width", 600)
    .attr("height", 600)
    .call(zoom);

var mainContainer = svg.append("g");

这是固定的 JSFiddle:https://jsfiddle.net/skgktrcu/2/

关于javascript - D3 V4 设置初始缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38378989/

相关文章:

javascript - 父级中的 jQuery 目标元素

javascript - 从 Firebase 读取用户 UID

javascript - 如何使用 Javascript 将图像对象转换为文件对象

javascript - Mongoose isModified 和 isNew

javascript - D3,变量 x 轴基于时间刻度

javascript - d3 与 vue.js 组件集成

css - 显示特定的 Tick 值

javascript - D3 - 定位边缘抛出 NaN 错误

javascript 正则表达式查找文本中包含(at)的单词

javascript - 使用 d3 将 SVG 文本绕一个圆旋转,然后绕其自身旋转