ChartJS - линейный график, всплывающая подсказка - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующий график с 3 наборами данных. Все работает отлично, за исключением одного небольшого бага. Я хочу, чтобы всплывающая подсказка размещалась только в первом наборе данных, поскольку в настоящее время она располагается в среднем положении всех наборов данных.

Вот снимок экрана: enter image description here

Я знаю, что в ChartJS есть функция позиционеров (см. Ниже), но я не могу понять, как игнорировать другие 2 набора данных, чтобы всплывающая подсказка была привязана только к первому линейному графику

Chart.Tooltip.positioners.top = function (elements, eventPosition) {
      const tooltip = this;
      return ;
 };

1 Ответ

1 голос
/ 06 ноября 2019

Вы также можете определить пользовательскую функцию положения для всплывающих подсказок. например,

Chart.Tooltip.positioners.custom = function(elements, eventPosition) {
var x = eventPosition.x;
var y = eventPosition.y;
var minDistance = Number.POSITIVE_INFINITY;
var i, len, nearestElement;
var top_element = elements[0];
for (i = 0, len = elements.length; i < len; ++i) {
    console.log(elements[i].tooltipPosition().y);
    if (elements[i].tooltipPosition().y < top_element.tooltipPosition().y) {
        top_element = elements[i];
    }
}
var tp = top_element.tooltipPosition();
x = tp.x;
y = tp.y;

return {
    x: x,
    y: y
};

};

После этого вы можете указать его в tooltips.options.

Дополнительная информация:

https://www.chartjs.org/docs/latest/configuration/tooltip.html#position-modes

Надеюсь, это поможет!

...