2012-08-06 68 views
2

我使用拉斐尔动画球,需要停止动画之后,找出位置,这里是我的代码:如何找到拉斐尔元素的位置?

ball.stop(); 
console.log(ball.attrs.transform); 
// t399.6625490203161,180r180 

我怎么这个字符串转换成X,的y位置球?

回答

5

您可以使用Element.getBBox此:

var x = ball.getBBox().x; 
var y = ball.getBBox().y; 
var r = ball.getBBox().height/2; 
console.log(x, y, r); 

但要注意

坐标(element.getBBox().xelement.getBBox().y)将参照边框的左上角。
如果球是一个圆圈,那个点甚至不会包含在该圆圈中,并且使用该中心的坐标可能更明智。

鉴于边框bbox,这些将是

var x = bbox.x + bbox.width/2, 
    y = bbox.y + bbox.height/2; 
+2

点上。一个警告:坐标(element.getBBox()。x,element.getBBox()。y)将引用边界框的左上角。如果球是一个圆圈,那么该点甚至不会包含在该圆圈中,使用该中心的坐标可能更明智。给定边界框'bbox',那些是'x = bbox.x + bbox.width/2','y = bbox.y + bbox.height/2'。 – 2012-08-06 16:45:45

+0

@KevinNielsen,非常好的除了谢谢,我希望你不介意我将你的评论复制到答案中,因为它非常重要! – 2012-08-06 17:10:03

+0

绝对。我喜欢你用“但要小心”=)干杯的方式干杯! – 2012-08-06 17:16:21