2016-07-08 9 views
0

Ich versuche die Sichtbarkeit der Zoom-Schaltfläche auf einem Highstock-Diagramm zu steuern, indem ich den Zoom der x-Achse nur bei aktiviertem Navigator verwende.highcharts reset zoom button

Standardmäßig erscheint bei dieser Kombination der Hauptcode, der die Zoomtaste deaktiviert. Es gibt jedoch einige Funktionen, mit denen Sie die Schaltfläche anzeigen können, aber ich kann keine finden, um sie zu verbergen.

Siehe diese Geige für ein Beispiel, mit dem ich arbeite. https://jsfiddle.net/sooftcL7/3/

Durch Tippen auf das xAxis setExtremes-Ereignis kann ich das Zoom-Ereignis erkennen, das unter Verwendung der Trigger-ID auftritt. und ich kann den Knopf mit chart.showResetZoom() einschalten;

Ich habe beide versucht

chart.resetZoomButton.destroy() 
chart.resetZoomButton.hide() 

wie an anderer Stelle vorgeschlagen, jedoch sind sie nicht definierten Funktionen.

Jede Hilfe wäre willkommen.

Cheers,

D.

+0

Sie können die standardmäßige Highstock Axis.prototype.zoom Funktion ändern, um Funktionen zum Ein- und Ausblenden der Zoomtaste hinzuzufügen. Hier finden Sie ein Beispiel, wie es funktionieren kann: https://jsfiddle.net/sooftcL7/4/ –

Antwort

1

Sie haben Navigator deaktivieren Sie die unteren Leiste zu entfernen und rangeSelector deaktivieren Sie die Zoom-Taste

diese
$('#container').highcharts('StockChart', { 
    ... 
    rangeSelector : { 
     enabled: false 
    }, 
    navigator: { 
     enabled: false 
    } 
    ... 
}); 

Scheck http://jsfiddle.net/CgAnW/

+1

Danke zoro, Ich war mir bewusst, dass die Deaktivierung des Navigators die Standardwerte der Zoom-Taste aktiviert. Ich benötige jedoch ausdrücklich den Navigator. Was ich herausfinden möchte, ist, wenn es eine Methode zum Verstecken der Zoom-Taste gibt, wie es für die Anzeige ist. Cheers, D. – Dave

0

entfernen resetZoomButton.destroy() Funktion kann nur aufgerufen werden, wenn resetZoomButton ein Objekt ist. Nach Highsotck Quelle:

Für Aktien-Charts (...) X-Achse Zoomen ist bereits durch den Navigator und Range-Selektor erlaubt.

if (zoomType === 'x') { 
     chart.resetZoomButton = 'blocked'; // replaced with string 
    } 

Also, das hacken können Sie einfach tun:

chart: { 
     zoomType: 'xz' // whatever string containg x 
    } 

Dies bedeutet, dass Zoomtyp bleibt ‚x‘, aber sie weglassen diesen hässlichen if-Anweisung, die mit einer zufälligen String-Objekt resetZoomButton ersetzt ...