Это очень специфическая и несколько сложная проблема, поэтому я настроил минимальный тестовый пример , который вы, вероятно, должны увидеть перед прочтением остальной части этого.
У меня есть страница, на которой отображаются изображения с выделенными областями при наведении Raphaël . Я также работал над добавлением всплывающих подсказок к этим подсказкам, чтобы вы могли видеть, как называется каждая часть изображения.
Raphaël рисует выделенные области с помощью SVG, и поскольку элементы SVG также являются DOM-узлами, присоединение к ним Tipsy легко выполняется следующим образом:
// Get the path node as a jQuery object.
pathNode = $(path.node);
// Set the title so it's available to tipsy.
pathNode.attr('title', element.title);
// Add a Tipsy tooltip to each node, if Tipsy is loaded.
if ($.fn.tipsy) {
pathNode.tipsy({
fade: true
});
}
Проблема заключается только в мази, и причина этого вопроса в том, что Типси рисует всплывающую подсказку в верхней части экрана (с координатами 0,0) вместо рядом с узлом SVG, и я не могу понять как это исправить. При отладке Tipsy JavaScript у него, кажется, есть координаты в некоторой точке, но он все равно не может нарисовать в правильном месте.
Может кто-нибудь понять это? (Подробнее см. минимальный тест .)