Расположение всплывающей подсказки на d3 в Firefox, IE
Я рисую линейные графики d3 и подсказки, прикрепленные к кругу.
Всплывающие подсказки работают нормально в Chrome/Safari, но в Firefox и IE, когда вы наводите курсор мыши на точку, в то время как соответствующая подсказка появляется, она отображается за пределами элемента graph/SVG в верхнем левом углу экрана (элемент html) рядом с точкой.
Вот как я прикрепляю подсказку:
jQuery('g circle').tipsy({
gravity: 'w',
html: true,
title: function() {
return this.textContent;
}
})
Любой совет о том, что я делаю неправильно, будет высоко ценится.
2 ответа
tipsy использует offsetWidth и offsetHeight для элементов. Предполагается, что такие вещи работают с элементами SVG, к сожалению, это неверное предположение вне Chrome/Safari.
Спецификация CSSOM говорит, что offsetWidth/offsetHeight являются свойствами элемента html. Похоже, что Chrome / Safari поместили их в свои элементы SVG, но нет никакой спецификации, которая говорит, что это должно быть так.
Вам нужно будет либо исправить типсы, чтобы быть кросс-браузерным, либо попросить автора сделать это. Использование getTransformToElement и / или getBBox, вероятно, то, что нужно.