我有一个包含元素和元素组的 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/