D3 V5:将初始缩放与缩放事件同步
D3 V5 : sync initial zoom with zoom event
我正在尝试在我的网络上设置初始缩放。它工作正常,但只要我尝试手动缩放图表,可视化就会跳转到它的自然缩放设置。看了Stack上的答案和d3的官方文档,下面的代码我觉得是对的,但是并没有解决问题。
我做错了什么?
非常感谢您的帮助!
const svg = d3.select('div#network')
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}),d3.zoomIdentity.scale(.2))
.append("g")
.attr("transform", `translate(${margin.left},${margin.top})`)
.attr("transform","scale(.2)")
已解决!我几乎是对的!您需要进行第二次“调用”,而不是将此转换作为第一个转换的参数。
const svg = d3.select('div#reseau')
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}))
.call(d3.zoom().transform,d3.zoomIdentity.scale(.2))
.append("g")
.attr("transform", `translate(${margin.left},${margin.top})`)
.attr("transform","scale(.2)")
我正在尝试在我的网络上设置初始缩放。它工作正常,但只要我尝试手动缩放图表,可视化就会跳转到它的自然缩放设置。看了Stack上的答案和d3的官方文档,下面的代码我觉得是对的,但是并没有解决问题。
我做错了什么? 非常感谢您的帮助!
const svg = d3.select('div#network')
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}),d3.zoomIdentity.scale(.2))
.append("g")
.attr("transform", `translate(${margin.left},${margin.top})`)
.attr("transform","scale(.2)")
已解决!我几乎是对的!您需要进行第二次“调用”,而不是将此转换作为第一个转换的参数。
const svg = d3.select('div#reseau')
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}))
.call(d3.zoom().transform,d3.zoomIdentity.scale(.2))
.append("g")
.attr("transform", `translate(${margin.left},${margin.top})`)
.attr("transform","scale(.2)")