我试图在Javascript中获取Snap SVG元素的高度和宽度。当我尝试这个时,它返回0,除非我将这个元素添加到一个组。为此,我使用的是Snap.svg。
通过执行以下操作选择SVG元素:
Size1 = 12*nchar(V(g)$name)
plot.igraph(g, layout = -coords[,2:1],
vertex.shape="rectangle",
vertex.size=Size1,
vertex.size2=5,
vertex.color=NA,
vertex.frame.color="green",
vertex.label.color="black",
vertex.label.family="sans",
edge.label.color="white",
edge.arrow.mode=0,
edge.width=3,
asp=2.5
)
我的HTML看起来像:
on(self.element, 'mousemove', function (e) {
var item = null;
if (item === null) {
item = paper.use(paper.select('#myId')); //Create svg
}
var itemBBox = item.getBBox();
itemBBox.x //returns 0
itemBBox.y //returns 0
itemBBox.height //returns 0
itemBBox.width //returns 0
}
所以itemBBox中的每个变量都是0,除非我将它添加到一个组:<svg>
<symbol id="myId"><path ...></path></symbol>
</svg>
为什么要这样,是否需要将单个项目添加到组中才能获取选择的大小?