2013-03-21 17 views
6

Sto utilizzando setExtremes per ingrandire i dettagli in un grafico, oltre a consentire all'utente di ingrandire "x, y" selezionando nel grafico. Quando l'utente zooma, ottengono un pulsante 'reset zoom', tuttavia quando chiamo setExtremes, non lo faccio.Ripristina zoom "Highcharts" dopo aver chiamato setExtremes

C'è un modo per me di forzare il pulsante 'reset zoom' per apparire programmaticamente?

UPDATE:

chiamando

if(!chart.resetZoomButton) { 
    chart.showResetZoom(); 
} 

all'interno del gestore di eventi afterSetExtremes fa apparire il pulsante, ma cliccando non si fa nulla.

UPDATE:

Invece di chiamare setExtremes, ho cambiato a chiamare

chart.xaxis [0] .ZOOM (Minx, maxx); chart.yaxis [0] .zoom (miny, maxy); chart.redraw();

Questo ha lo stesso effetto dello zoomin utente in selezionando sul grafico.

risposta

10

appena dato un'occhiata in giro il codice sorgente di Highcharts, sembra che questo può funzionare per voi:

chart.showResetZoom(); 

Inoltre, in modo che il pulsante per funzionare correttamente, è necessario utilizzare al posto di axis.zoom impostazione degli estremi:

axis.zoom(newMin,newMax); 

Fammi sapere se funziona!

+0

Ho chiamato questo all'interno del gestore di eventi afterSetExtremes per la xe y. Il pulsante ora rimane sul grafico, ma facendo clic non fa nulla. – SteveP

+0

Hai provato a utilizzare axis.zoom() invece di setExtremes? Si chiama come axis.zoom (newMin, newMax); Forse l'attivazione dell'evento di zoom da quella funzione farà sì che il pulsante funzioni correttamente. Solo un'idea – MatthewKremer

+0

Se si configura anche un http://JSFiddle.net, posso dare un'occhiata a questo. – MatthewKremer

4

È possibile utilizzare showResetZoom, ma è necessario verificare se il pulsante di ripristino è già visibile, altrimenti non scompare.

if(!chart.resetZoomButton) { 
    chart.showResetZoom(); 
} 
0

Questo approccio funziona bene:

if (!$('.highcharts-button').length) { 
    chart.showResetZoom(); 
} 

Ciò presuppone che l'unico tasto che potrebbe mostrare è il pulsante "Reset Zoom". Se è già lì, non mostrarne un altro.

Se non si esegue questa verifica, viene aggiunto un nuovo pulsante ogni volta che si chiama showResetZoom(). Facendo clic sul pulsante visibile (più recente) si ripristina lo zoom e si rimuove il pulsante, ma i pulsanti più vecchi sono ancora visibili e non fanno nulla.

0

Se si utilizza setExtremes è anche possibile impostare min e max a null per azzerare:

chart.xAxis[0].setExtremes(null, null) 
Problemi correlati