Расположение всплывающей подсказки на 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 ответа

Этот патч добавляет правильную поддержку SVG в Tipsy.

tipsy использует offsetWidth и offsetHeight для элементов. Предполагается, что такие вещи работают с элементами SVG, к сожалению, это неверное предположение вне Chrome/Safari.

Спецификация CSSOM говорит, что offsetWidth/offsetHeight являются свойствами элемента html. Похоже, что Chrome / Safari поместили их в свои элементы SVG, но нет никакой спецификации, которая говорит, что это должно быть так.

Вам нужно будет либо исправить типсы, чтобы быть кросс-браузерным, либо попросить автора сделать это. Использование getTransformToElement и / или getBBox, вероятно, то, что нужно.

Другие вопросы по тегам