svg,得到位置绝对组

时间:2014-07-09 04:36:31

标签: javascript jquery html5 svg d3.js

我试图获得组对象的绝对位置。 在html中我有:

<svg width="1301" height="388">
  <g transform="translate(3245.914484377907,2040.9185616875811)scale(1.0)">
    <g class="node" data-toggle="popover" data-placement="bottom" transform="translate(33,50)">
      <image xlink:href="/thumb_glyphicons/commons/stack-overflow.png" x="-3014" y="-1905" width="64" height="64" transform="rotate(0 -2982,-1873)"></image>
      <text x="-2982" y="-1819" text-anchor="middle" font-size="12.8px">absolute position</text>
    </g>
  </g>
</svg>

我看到它有一些attr:scale,group_main_translate_x,group_main_translate_y,node_translate_x,node_translate_y,node_x,node_y

我尝试函数:abs_node_x =(node_translate_x + node_x + group_main_translate_x)* scale。

似乎是对的:(-3014 + 33 + 3245.914484377907)* 1

但是当比例!= 1时,我的值有误。有时我得到“-value”。

Plz修复函数计算帮助我!

abs_position

1 个答案:

答案 0 :(得分:0)

首先,对于这样的问题,我建议使用jsFiddle或类似的方法来显示问题和代码。

如果我正确理解了这个问题,那么你的功能似乎是正确的。您需要做的就是将结果除以缩放值。

另请注意,不同浏览器的处理规模不同。 Chrome可能包括尺寸缩放到尺寸,而IE则没有。因此,对于200x宽度的盒子,缩放2倍,你将获得Chrome浏览器400px和IE浏览器200px。

希望这有帮助。