2012-06-25 20 views
16

Al desplazarse sobre un punto en un gráfico de Highcharts, obtiene un bonito círculo agrandado debajo del cursor (u otro símbolo). Lo que me gustaría hacer es activar manualmente ese efecto de desplazamiento.Highcharts: desencadenar manualmente el evento de desplazamiento sobre un punto

Sé que puedo activar manualmente el evento mouseOver en el punto, pero eso no me da el símbolo ampliado en el gráfico que estoy buscando.

+2

Cuándo quiere para disparar? Puedes darme un ejemplo ? –

+0

En mi caso particular, deseo desencadenar el efecto al pasar el puntero sobre otro punto. Soy consciente de la bandera "compartida" que puedes poner en la información sobre herramientas, pero eso no es lo que estoy buscando. Quiero activar el efecto de desplazamiento sobre otro punto de la misma serie, pero a una x diferente, y. –

Respuesta

26

Encontré la respuesta mirando la fuente - llamada "setState ('hover');" en el punto que quieres resaltar.

+3

y para eliminar el estado de desplazamiento, llame a "setState();" sin argumentos – d2vid

+0

alguien tiene un jsfiddle o un código más detallado de esto? – jhanifen

+7

Aquí hay un jsfiddle que establece el estado de desplazamiento y muestra la información sobre herramientas: http://jsfiddle.net/xW2MW/ (a través del [foro de HighCharts] (http://highslide.com/forum/viewtopic.php?f=9&t= 7094)). – BrianS

8

Sólo para añadir una información importante:

Para StockChart esta solución no funciona:

En this example tiene que sustituir esto:

chart.tooltip.refresh(chart.series[0].data[i]); 

a esto:

chart.tooltip.refresh([chart.series[0].points[i]]); 

Una posible solución está disponible here .

1

para dar una respuesta más directa (por ejemplo, porque entonces usted no tiene acceso a la instancia Highcharts):

es necesario crear un evento mouseover y darle pageX adecuada y atributos pageY antes de que usted los activa.

0

Aquí es un ejemplo de cómo seleccionar (flotar) el último punto válido en serie mediante programación:

// Find last not-null point in data 
    let last = data.indexOf(null) - 1; 
    last = (last === -2) ? data.length - 1 : last; 
    const lastPoint = this.series[0].points[last]; 

    // Trigger the hover event 
    lastPoint.setState('hover'); 
    lastPoint.state = ''; // You need this to fix hover bug 
    this.tooltip.refresh(lastPoint); // Show tooltip 

Full JSFiddle exapmle

enter image description here

Cuestiones relacionadas