如何在raphael中找到元素的位置?

Tek*_*Tek 2 javascript raphael

我使用raphael动画一个球,并在停止动画后需要找出位置,这是我的代码:

ball.stop();
console.log(ball.attrs.transform);
// t399.6625490203161,180r180
Run Code Online (Sandbox Code Playgroud)

如何将此字符串转换为球的x,y位置?

Dan*_*Lee 5

你可以使用Element.getBBox这个:

var x = ball.getBBox().x;
var y = ball.getBBox().y;
var r = ball.getBBox().height / 2;
console.log(x, y, r);
Run Code Online (Sandbox Code Playgroud)

但要注意:

坐标(element.getBBox().x,element.getBBox().y)将指向边界框的左上角.
如果球是圆形,则该点甚至不会包含在圆中,使用中心坐标可能更为明智.

鉴于边界框bbox,那些将是

var x = bbox.x + bbox.width / 2,
    y = bbox.y + bbox.height / 2;
Run Code Online (Sandbox Code Playgroud)

  • 发现.一个警告:坐标(element.getBBox().x,element.getBBox().y)将引用边界框的左上角.如果球是圆形,则该点甚至不会包含在圆中,使用中心坐标可能更为明智.给定边界框"bbox",那些将是`x = bbox.x + bbox.width/2`,`y = bbox.y + bbox.height/2`. (2认同)