Легенда HighChart Я перезаписываю указатель мыши, но теряю прозрачность. Как мне это сохранить? - PullRequest
0 голосов
/ 03 мая 2020
plotOptions: {
   series: {
     events: {
       afterAnimate: function () {
         for (let item of this.chart.legend.allItems) {
           item.legendItem.on('mouseover', function (e) {
                /**
                 * Register a callback based on the legend selected
                 */
           }).on('mouseout', function (e) {
                /**
                 * Degerister a callback
           })
         }
       }
     },

I wi sh, чтобы добавить функциональность при наведении указателя мыши на элемент легенды, но приведенное выше удаляет функцию прозрачности по умолчанию. Как я могу легко повторно вызвать?

1 Ответ

0 голосов
/ 05 мая 2020

Вы можете добавить часть кода по умолчанию для функций событий:

plotOptions: {
  series: {
    events: {
      afterAnimate: function() {
        const legend = this.chart.legend,
          boxWrapper = legend.chart.renderer.boxWrapper;

        for (let item of legend.allItems) {
          let isPoint = item instanceof Highcharts.Point,
            activeClass = 'highcharts-legend-' +
            (isPoint ? 'point' : 'series') + '-active';

          item.legendItem.on('mouseover', function(e) {
            if (item.visible) {
              legend.allItems.forEach(function(inactiveItem) {
                if (item !== inactiveItem) {
                  inactiveItem.setState('inactive', !isPoint);
                }
              });
            }
            item.setState('hover');

            if (item.visible) {
              boxWrapper.addClass(activeClass);
            }

          }).on('mouseout', function(e) {
            legend.allItems.forEach(function(inactiveItem) {
              if (item !== inactiveItem) {
                inactiveItem.setState('', !isPoint);
              }
            });

            boxWrapper.removeClass(activeClass);
            item.setState();
          })
        }
      }
    }
  }
}

Демо-версия: http://jsfiddle.net/BlackLabel/6m4e8x0y/5000/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...