2016-12-27 4 views
0

ОжидатьЕсть ли возможность настраивать позицию всплывающей подсказки?

разделяемые серии имеют независимую позицию подсказке

Пробовал

Согласно документу Highcharts, я знаю, что Highcharts.tooltip.positioner может сделать некоторые пользовательские к подсказке, но в то время как я искать вокруг, все они: un-split всплывающая подсказка. и не удалось в ситуации разделения, так что есть ли возможность настраивать позицию всплывающей подсказки?

http://jsfiddle.net/TabGre/fyxqsq4L/

UPD:

подсказка каждой точки чуть выше него, так же, как positioner:

positioner: function() { 
    return { 
    x: this.plotX; 
    y: this.plotY + 100; 
    } 
} 
+0

Что вы имеете в виду под "раскол"? – wergeld

+0

Позиционер не работает с всплывающей подсказкой. Вы можете использовать свойство расстояния: http://jsfiddle.net/zefz1u5e/1/ Как именно вы хотите поместить всплывающую подсказку? – morganfree

+0

У меня есть вопрос: smile; –

ответ

1

Как я уже говорил в комментариях, в настоящее время позиционера обратный вызов не влияет на всплывающая подсказка. Тем не менее, можно перезаписать функцию, которая отвечает за визуализацию вскрытой всплывающей подсказки. Это требует вычисления позиции самостоятельно.

Если вы хотите раскол подсказки быть в верхнем левом углу, как в вашем fiddle вам нужно перезаписать Highcharts.Tooltip.prototype.renderSplit = function(labels, points) с желаемой позицией для каждого окна.

var yPos = 0; 

      each(boxes, function(box, i) { 
       var point = box.point, 
        series = point.series; 

       // Put the label in place 
       box.tt.attr({ 
       // visibility: box.pos === undefined ? 'hidden' : 'inherit', 
        x: (rightAligned || point.isHeader ? 
         //box.x : 
         0 : 
         point.plotX + chart.plotLeft + pick(options.distance, 16)), 
        // y: box.pos + chart.plotTop, 
        y: yPos, 
        anchorX: point.isHeader ? 
         point.plotX + chart.plotLeft : point.plotX + series.xAxis.pos, 
        anchorY: point.isHeader ? 
         box.pos + chart.plotTop - 15 : point.plotY + series.yAxis.pos 
       }); 
       yPos += box.size; 
      }); 

пример: http://jsfiddle.net/tbguemvL/

+0

Спасибо за все, что вы сделали, я постараюсь изо всех сил понять ваш код. –