2013-02-28 2 views
14

Ярлыки на моей диаграмме показывают всплывающую подсказку, которая выглядит не очень красиво. Я пытался играть с zIndex, но ни в коем случае. Как сделать всплывающие подсказки непрозрачными? Вот мой jsFiddle: http://www.jsfiddle.net/4scfH/3/HighCharts: ярлыки, видимые над подсказкой

$(function() { 
 
    var chart; 
 
    $(document).ready(function() { 
 
    chart = new Highcharts.Chart({ 
 
     chart: { 
 
     renderTo: 'graf1', 
 
     plotBackgroundColor: null, 
 
     plotBorderWidth: null, 
 
     plotShadow: false 
 
     }, 
 

 
     title: { 
 
     margin: 40, 
 
     text: 'Podíl všech potřeb' 
 
     }, 
 
     tooltip: { 
 
     //pointFormat: '<b>{point.y} Kč [{point.percentage}%]</b>', 
 
     percentageDecimals: 2, 
 
     backgroundColor: "rgba(255,255,255,1)", 
 
     formatter: function() { 
 
      return this.point.name + '<br />' + '<b>' + Highcharts.numberFormat(this.y).replace(",", " ") + ' Kč [' + Highcharts.numberFormat(this.percentage, 2) + '%]</b>'; 
 
     } 
 
     }, 
 
     plotOptions: { 
 
     pie: { 
 
      allowPointSelect: true, 
 
      cursor: 'pointer', 
 
      dataLabels: { 
 
      enabled: true, 
 
      color: '#000000', 
 
      connectorWidth: 2, 
 
      useHTML: true, 
 
      formatter: function() { 
 
       return '<span style="color:' + this.point.color + '"><b>' + this.point.name + '</b></span>'; 
 
      } 
 
      } 
 
     } 
 
     }, 
 
     series: [{ 
 
     type: 'pie', 
 
     name: 'Potřeba', 
 
     data: [ 
 
      ['Firefox', 45.0], 
 
      ['IE', 26.8], { 
 
      name: 'Chrome', 
 
      y: 12.8, 
 
      sliced: true, 
 
      selected: true 
 
      }, 
 
      ['Safari', 8.5], 
 
      ['Opera', 6.2], 
 
      ['Others', 0.7] 
 
     ] 
 
     }] 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.highcharts.com/highcharts.js"></script> 
 
<div id="graf1" style="width: 400px; height: 250px; float:left"></div>

+1

Вот очень хорошее решение по tevfik6 https: // GitHub. com/highcharts/highcharts/issues/2528 # issuecomment-283177513 – Rachmaninoff

ответ

25

Вы можете установить useHTML и определить свою собственную всплывающую подсказку с помощью CSS:

http://jsfiddle.net/4scfH/4/

tooltip: { 
    borderWidth: 0, 
    backgroundColor: "rgba(255,255,255,0)", 
    borderRadius: 0, 
    shadow: false, 
    useHTML: true, 
    percentageDecimals: 2, 
    backgroundColor: "rgba(255,255,255,1)", 
    formatter: function() { 
     return '<div class="tooltip">' + this.point.name + '<br />' + '<b>' + Highcharts.numberFormat(this.y).replace(",", " ") + ' Kč [' + Highcharts.numberFormat(this.percentage, 2) + '%]</b></div>'; 
    } 
}, 

CSS

.label { 
    z-index: 1 !important; 
} 

.highcharts-tooltip span { 
    background-color: white; 
    border:1 px solid green; 
    opacity: 1; 
    z-index: 9999 !important; 
} 

.tooltip { 
    padding: 5px; 
} 
+0

Очень приятно, спасибо;) –

+0

Вот что мне помогло: '.highcharts-tooltip span { z-index: 9999! important; } '. Спасибо! – silkfire

+0

@ sebastian-bochan Это решение полезно, если вы не используете параметр масштабирования. В противном случае всплывающая подсказка будет охватывать кнопку «Сброс». Есть ли простой способ исправить это? – sherlock85

1

и если вы не хотите, чтобы daddle в задачах есть в useHTML, вот способ сделать это в формате SVG:

Highcharts.wrap(Highcharts.Chart.prototype, 'redraw', function(proceed, animation) { 
    proceed.call(this, animation); 
    try { 
    if (this.legend.options.floating) { 
    var z = this.legend.group.element, zzz = z.parentNode; 
    zzz.removeChild(z); 
    zzz.appendChild(z); //zindex in svg is determined by element order 
    } 
    } catch(e) { 

    } 
}); 
+0

укажите jsfiddle –

5

Если вы установите tooltip.backgroundColor в «RGBA (255,255,255,1) «вы получите всплывающую подсказку с« без прозрачности »

Вам нужно будет удалить useHTML: true в настройках пирога.

Вилка вашего jsfiddle: http://jsfiddle.net/kairs/Z3UZ8/1/

tooltip: { 
    backgroundColor: "rgba(255,255,255,1)" 
} 

Documentation on highchart

+0

Проблема заключается в использовании 'dataLabels: {useHTML: true,' –

2

У меня был такой же вопрос. Мое решение. Подсказка - useHTML = true. Tooltip - Formatter = HTML-код там с одним контейнером div. Здесь маржа в отрицательном значении важна в css.

tooltip: { 
    backgroundColor: "rgba(255,255,255,1)", 
    useHTML: true, 
    formatter: function() { 
     var html = []; 
     html.push('<b>Correlation to ' + this.point.p + '</b><br>'); 
     if (null != this.point.associatedPoints 
       && typeof this.point.associatedPoints != 'undefined' 
       && this.point.associatedPoints.length > 0) { 
      $.each(this.point.associatedPoints, function(i, associatedPoint) { 
       html.push('Responses: ' + associatedPoint.nFormatted); 
      }); 
     } 
     return '<div class="tooltip-body">' + html.join('') + '</div>'; 
    } 

CSS:

.highcharts-tooltip span { 
    z-index: 9999 !important; 
    top:2px !important; 
    left:2px !important; 
} 
.highcharts-tooltip span .tooltip-body{ 
    background-color:white; 
    padding:6px; 
    z-index:9999 !important; 
    margin-bottom:-14px; 
    margin-right:-14px; 
} 
+1

Добро пожаловать. Пожалуйста, объясните, как этот ответ добавляется к выбранному в данный момент, а другой уже существующий. – mins

0

я все еще были проблемы с некоторыми из решений вокруг, настройки Z-индекс: 999 на .tooltip не оказывает влияния из-за различных контейнеров дивы. Но, я нашел, что это работает хорошо (когда легенда и всплывающая подсказка - HTML). Нет необходимости устанавливать другие Z-индексы либо:

.highcharts-legend { z-index: -1; }

2

Я была такая же проблема. Ярлыки были видны над всплывающей подсказкой. Удаление useHTML = true для ярлыков, работающих для меня.

+0

У меня была аналогичная ситуация с вопрошающим, но с общей подсказкой. Установка 'useHTML: false' в элементе' legend', как отметил @Sushil, точно сделал трюк. Оказалось, что использование 'useHTML: true', установленное как в легенде *, так и в * всплывающей подсказке, вызвало нежелательные причуды. –

0

Для Highchart подсказок с HTML форматом

Highchart конфигурация

tooltip: { 
    borderWidth: 0, 
    backgroundColor: "rgba(255,255,255,0)", 
    shadow: false, 
    useHTML: true 
    ........ 
}, 

CSS:

.highcharts-tooltip>span { 
    background-color: #fff; 
    border: 1px solid #172F8F; 
    border-radius: 5px; 
    opacity: 1; 
    z-index: 9999!important; 
    padding: .8em; 
    left: 0!important; 
    top: 0!important; 
} 

Screenshot

Смежные вопросы