Hice otra variante basada en la respuesta de Gregs pero para las tramas en cambio, ya que eso era lo que necesitaba. Supongo que también se traduciría fácilmente a plotBands.
Esta variante también funciona con eventos, pero en su lugar muestra otra div en lugar de depender de una serie oculta particular.
El ejemplo se puede encontrar en JSFiddle.
Así la información sobre herramientas se añade en el mismo recipiente que el gráfico
<div id="tooltip" class="thetooltip">
<p id="tooltiptext" style="margin:0">default</p>
</div>
y cuando los ratones de usuario más de una trama se dispara un evento que muestra la información de herramientas junto con una información de herramienta adjunta
var $tooltip = $('#tooltip');
$tooltip.hide();
var $text = $('#tooltiptext');
displayTooltip = function (text, left) {
$text.text(text);
$tooltip.show();
$tooltip.css('left', parseInt(left)+24 + 'px');
};
var timer;
hideTooltip = function (e) {
clearTimeout(timer);
timer = setTimeout(function() {
$tooltip.fadeOut();
}, 5000);
};
Y luego, cada trazado se define con una opción adicional, tooltipText y eventos para mostrar el div anterior.
plotLines: [{
tooltipText: 'hello',
value: Date.UTC(2011, 2, 28, 0, 1, 1),
color: '#ff6666',
dashStyle: 'solid',
width: 3,
events: {
mouseover: function (e) {
displayTooltip(this.options.tooltipText, this.svgElem.d.split(' ')[1]);
},
mouseout: hideTooltip
}
}
la ToolTipText no es parte de Highcharts api, pero cuando se define que está disponible a través de la propiedad opciones en el elemento.
El css para la información de herramienta se puede definir similar a la predeterminada por Highcharts simplemente por mimicing el css:
.thetooltip {
border: 1px solid #2f7ed8;
background-color: #fff;
opacity: 0.8500000000000001;
padding: 4px 12px;
border-radius: 3px;
position: absolute;
top:100px;
box-shadow: 1px 1px 3px #666;
}
Gracias s por eso! ¡Ni siquiera pensé en hacerlo de esa manera! – Colin
@ Colin Por favor marque esta respuesta como aceptada si resolvió su pregunta. – zykadelic