3

即使在缩放或向左或向右移动之后,如何动态获取 raphael js 元素的 x 和 y 值,我想在我的元素附近显示一个 div,当我显示 element.getBBox() 值时,我发现它们即使我移动元素或放大/缩小也不要改变,我用来获取 x 和 y 值的代码如下所示:

x = (myElement.getBBox().x+myElement.getBBox().x2)/2;
x+=$("#container").offset().left;
y = (myElement.getBBox().y+myElement.getBBox().y2)/2;
y+=$("#container").offset().left;

移动我的 div(工具提示)的代码是:

$("#myTooltip").css({"left":x+"px","top":y+"px"}).show();

注意:当我用鼠标坐标(使用x=e.pageX;y=e.pageY;)做同样的事情时它可以工作,但在这种情况下,当我点击页面中的另一个按钮时我想这样做

提前致谢

4

2 回答 2

1

解决方案是使用myElement.attr('x')andmyElement.attr('y')而不是myElement.getBBox().xand myElement.getBBox().y,谢谢 AS Roma,别忘了跟 Totti 打个招呼

编辑: 如果有人有同样的问题,到目前为止我发现的最好的解决方案是使用 jquery 和 raphael,说明:首先我需要在元素的定义中添加一个这样的 ID:myElement.node.id='myUniqueId'然后你可以访问像这样使用jquery的元素x = $("#myUniqueId").offset().lefty = $("#myUniqueId").offset().top

于 2013-06-26T13:24:50.620 回答
1

我也在使用 Raphael,并且遇到了我认为您在项目中需要的东西。
为了了解如何x以及y可以动态显示,请查看此演示

当您四处拖动对象时,您可以看到它们的坐标动态变化。祝你好运

于 2013-06-25T17:21:57.003 回答