我正在使用拉斐尔为球设置动画,并且需要在停止动画后找出位置,这是我的代码:

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

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

最佳答案

您可以为此使用 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;

关于javascript - 如何找到拉斐尔元素的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11822298/

10-09 23:22