2012-08-06 71 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