Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Javascript 从D3转换后画布的定位_Javascript_D3.js_Canvas_Position - Fatal编程技术网

Javascript 从D3转换后画布的定位

Javascript 从D3转换后画布的定位,javascript,d3.js,canvas,position,Javascript,D3.js,Canvas,Position,我刚刚设法将各自的热图从SVG转换为画布。(由于大数据集与性能问题)然而,生成的热图的位置已转移到一个新区域。我不知道该怎么办。通过更改变换也不会更改任何内容 我的代码: var单位=[]; 对于(var unit_i=0;unit_i当您使用svg仅显示文本和图例时,我认为您可以通过CSS将画布绝对定位在svg顶部 以下是CSS更改: div#trafficCongestions { position: relative; } canvas { position: absolute;

我刚刚设法将各自的热图从SVG转换为画布。(由于大数据集与性能问题)然而,生成的热图的位置已转移到一个新区域。我不知道该怎么办。通过更改变换也不会更改任何内容

我的代码:

var单位=[];

对于(var unit_i=0;unit_i当您使用
svg
仅显示
文本和
图例时,我认为您可以通过CSS将画布绝对定位在svg顶部

以下是CSS更改:

div#trafficCongestions {
  position: relative;
}
canvas {
  position: absolute;
  top: 170px;
  left: 100px;
}
您也可以使用
d3样式
执行上述操作,因为边距是在脚本中定义的。我只是想说明这是一个可以使用的选项

var单位=[];

对于(var unit_i=0;unit_i“我刚刚设法将各自的热图从d3js转换为画布”…这对我来说毫无意义。我相信你的意思是“从SVG到画布”,是吗?另外,您的代码片段正在冻结浏览器。嗨,Gerardo,我已经做了这些更改。事实上,冻结背后的原因是由于样本数据的大小。现在应该可以了,请参考并帮助我。:)是的,现在还没有冻结。我看到你只对文本和图例使用了
svg
。那么你为什么不将画布绝对值作为svg上的一个层呢?这有意义吗?嗨,Shashank,谢谢你的建议。这确实解决了我的问题。事实上,我已经使用d3样式实现了上述方法。该方法在正常情况下运行良好tml文件。但是它在我的visual studio项目中不起作用。请注意,语法都是相同的,但是只显示绝对样式,而不显示顶部和左侧(在浏览器控制台中查看时)。有时,我只是不知道为什么visual studio总是有这样的问题。顺便说一句,使用css确实有效。您可以尝试添加此样式,即使用d3添加
position:absolute、top:margin.top和left:margin.left
吗?例如(在您的情况下):
canvas.style('position','absolute')。style('top',margin.top+'px')。样式('left',margin.left+'px')
?老兄,非常感谢。经过测试,它可以正常工作。非常奇怪,当我使用canvas.style('position','absolute')。style('top','170')。style('left','100')
。无论如何,我已经得到了我想要的。谢谢。太好了!很高兴我能帮上忙。:)将给定的解决方案标记为答案。:)