получить динамически значения x & y элемента raphaeljs, даже если он перемещается


Как динамически получить значения x & y элемента raphael js даже после масштабирования или перемещения влево или вправо, я хочу показать div рядом с моим элементом, когда я показываю элемент.значения 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;), но в этом случае я хочу сделать это, когда я нажимаю на другую кнопку на странице

Заранее благодарю

2 3

2 ответа:

Я также использую Рафаэля и наткнулся на то, что, как мне кажется, вам нужно в вашем проекте.
Чтобы понять, как x и y могут быть показаны динамически, посмотрите на это демо-версия:

Когда вы перетаскиваете объекты, вы можете видеть, как их координаты изменяются динамически. Удачи

Решение состоит в том, чтобы использовать myElement.attr('x') и myElement.attr('y') вместо myElement.getBBox().x и myElement.getBBox().y, Спасибо А. С. Рома, не забудьте поздороваться с Тотти

Редактировать: если у кого - то есть такая же проблема, лучшее решение, которое я нашел до сих пор, - это использовать jquery и raphael, explication : Прежде всего мне нужно в определении элемента добавить идентификатор, подобный этому: myElement.node.id='myUniqueId' и после этого вы можете получить доступ к элементу с помощью jquery, как это x = $("#myUniqueId").offset().left и y = $("#myUniqueId").offset().top