Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js D3V4:元素';快照';在编程转换后进行上一次转换的步骤_D3.js_Svg - Fatal编程技术网

D3.js D3V4:元素';快照';在编程转换后进行上一次转换的步骤

D3.js D3V4:元素';快照';在编程转换后进行上一次转换的步骤,d3.js,svg,D3.js,Svg,当我使用svg.call(zoom.translateBy,100100)以编程方式翻译svg时,然后用鼠标拖动元素,svgtransform属性将捕捉回拖动之前的值 这几乎就好像没有存储或保存由svg.call影响的转换,而是恢复到存储在d3.event.transform中的转换 似乎是在同一个问题上,虽然对于v3 似乎将缩放行为应用于两个不同的节点-svgMain和svg 试着运行svgMain.call(zoom.translateBy,100100)而不是svg.call(…),看看

当我使用
svg.call(zoom.translateBy,100100)
以编程方式翻译
svg
时,然后用鼠标拖动元素,
svg
transform属性将捕捉回拖动之前的值

这几乎就好像没有存储或保存由
svg.call影响的转换,而是恢复到存储在
d3.event.transform
中的转换


似乎是在同一个问题上,虽然对于v3

似乎将缩放行为应用于两个不同的节点-
svgMain
svg


试着运行
svgMain.call(zoom.translateBy,100100)
而不是
svg.call(…)
,看看它是否解决了问题。

太棒了,我使用了一个代码示例,但错过了这个,如果你没有想到它,调试起来真的很困难。非常感谢。
function zoomed() { svg.attr("transform", d3.event.transform); }
var zoom = d3.zoom().on("zoom", zoomed);

var svgMain = d3.select('body').append('svg').call(zoom);
var svg = svgMain.append('g') // All the drawing done here