javascript - 获取元素相对于封闭 svg 的坐标

标签 javascript d3.js svg

我有一个包含元素和元素组的 SVG。我想获取封闭元素相对于外部 SVG 的坐标。 目前我正在使用 document.getElementById(elementid).getBBox().y,它总是返回 0。

最佳答案

使用 jQuery 你可以这样做:var offset=svg.offset()(给你 svg 的绝对位置)然后 var pos=elem.offset() 为您提供元素的绝对位置。从另一个中减去一个。例如,这里的 svg 是 jQuery('svg') 并且 elem 可能是 jQuery('#idOfElement')。

我懒得做 vanilla JS 了,而且我也不推荐使用它。 jQuery 正试图成为跨浏览器的,并且偏移量在所有浏览器实现上都能很好地工作。

此外,您可以尝试利用浏览器定位系统并将 svg 的位置设置为“相对”,然后 elem.position() 将为您提供相对于具有相对位置或绝对位置的第一个绝对父元素的位置.

.svg { position:relative } 或者 $('svg').css({position:'relative'})

然后 $('#myElemId').position() 给你坐标。

关于javascript - 获取元素相对于封闭 svg 的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36103260/

相关文章:

javascript - 如何在javascript中调用同一函数内部和外部的函数

javascript - 我如何使用 d3.js 为我的 svg 元素的顶部制作动画,就像在这个 gif 中一样?

html - 如何测试 javascript 代码的速度 - SVG 与 CANVAS

javascript - 如何检查元素是否有效 JSX

javascript - 向数组对象添加属性

javascript - JS - 将全局函数应用于所有选择框

javascript - 具有多个图的 D3 转换

javascript - 如何在D3中转换不同持续时间的异物组

django - 如何在 Wagtail CMS 中为 ImageChooserBlock 添加矢量图像支持?

javascript - 如何在 Ariutta 的 svgpanzoom 库中将缩放限制为 X 轴(水平缩放)