Детализация Highmaps: скрыть всплывающую подсказку уровня 2

Я реализовал развертку карт (с отображением мини-диаграмм при нажатии на регион), и это работает очень хорошо. У меня небольшая проблема:

  • на более высоком уровне, когда указатель мыши находится над регионом, информация отображается во всплывающей подсказке (и если я нажимаю, отображается мини-диаграмма). Если я наведу указатель на название региона, появится всплывающая подсказка «щелкните для перехода к раскрытию». На этом уровне все нормально.

  • на подуровне (при нажатии на название региона на карте более высокого уровня) отображается карта нижнего уровня и информация отображается так же, как и для верхнего уровня: наведите указатель мыши на регион - ›информация отображается в всплывающая подсказка (это то, что я хочу). Но когда указатель мыши находится над названием региона, снова отображается всплывающая подсказка с «щелчком для перехода к раскрытию», и я бы хотел, чтобы на этом уровне ничего не отображалось (потому что я не могу снова выполнить развертку). Например, здесь щелкните "Auvergne-Rhône-Alpes": отображается карта французского региона . Теперь перейдите к метке «Ain»: я бы хотел, чтобы на этой метке не отображалась всплывающая подсказка (только всплывающая подсказка поверх синего цвета вокруг метки). Если я попытаюсь отключить всплывающую подсказку, всплывающая подсказка больше не будет отображаться (ни всплывающая подсказка с информацией, ни «щелчок для перехода к раскрытию»). Я хочу, чтобы всплывающая подсказка продолжала отображаться, но не «щелчок для перехода к раскрытию информации» на этом уровне. Я попытался выполнить ожидаемое поведение с этим кодом, но он зафиксировал положение всплывающей подсказки. Я хочу, чтобы всплывающая подсказка продолжала отображаться рядом с курсором мыши.

      tooltip: {      
      useHTML: true,      
      pointFormat: '<span class="f32">'+level+'</span>',
      positioner: function () {
      var content = this.label.text.textStr;              
      if(content.indexOf('<span class="f32">2</span>')>0)
          return { x: 0, y: -100 };
      else
          return { x: 0, y: 250};
          }
      },
    

Есть идеи по этому поводу? С уважением


person vegaelce    schedule 07.09.2020    source источник
comment
Вас устраивает что-то вроде "сделано здесь" или вы хотите отключить всю всплывающую подсказку? jsfiddle.net/BlackLabel/scbmwhx1   -  person Sebastian Wędzel    schedule 07.09.2020
comment
Спасибо за ваш ответ, я уже нашел это первое решение, но я предпочитаю, чтобы вся всплывающая подсказка была отключена (вместо пустой всплывающей подсказки. Как вы думаете, это возможно?   -  person vegaelce    schedule 08.09.2020


Ответы (1)


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

Демо: https://jsfiddle.net/BlackLabel/kg30con5/

tooltip: {
  formatter() {
    console.log(this)
    if (this.series.mapTitle) {
      var hoverVotes = this.hoverVotes; // Used by pie only
      var libRegion = this.LIB_REGION;
      if (libRegion == undefined) {
        libRegion = this.point.properties.name;
      }
      return "<b>" + libRegion + "</b><br/>" +
        "<hr/><b><i>Nb_Femmes : </b></i> " + unit_pre + Highcharts.numberFormat(this.point.value, mes_prec) + unit_suf +
        "<br/><i>Click to display more informations</i>";
    } else {
      if (level === 1) {
        return this.series.name
      } else {
        return false

      }
    }
  }
},

API: https://api.highcharts.com/highcharts/tooltip.formatter

person Sebastian Wędzel    schedule 11.09.2020