2013-03-21 45 views
6

Tôi đang sử dụng setExtremes để phóng to chi tiết trong biểu đồ, cũng như cho phép người dùng phóng to 'x, y' bằng cách chọn trong biểu đồ. Khi người dùng phóng to, họ sẽ nhận được nút 'đặt lại thu phóng', tuy nhiên khi tôi gọi setExtremes, tôi thì không.Highcharts 'Reset Zoom' sau khi gọi setExtremes

Có cách nào để tôi buộc nút 'đặt lại thu phóng' xuất hiện theo chương trình không?

UPDATE:

gọi

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

bên trong afterSetExtremes xử lý sự kiện làm cho các nút xuất hiện, nhưng cách nhấn vào nó không làm gì cả.

UPDATE:

Thay vì gọi setExtremes, tôi đã thay đổi để gọi

chart.xaxis [0] .zoom (cô gái tinh ranh, maxx); chart.yaxis [0] .zoom (miny, maxy); chart.redraw();

Điều này có cùng ảnh hưởng khi người dùng phóng to bằng cách chọn trên biểu đồ.

Trả lời

10

Chỉ cần có một cái nhìn xung quanh mã HighCharts nguồn, nó trông như thế này có thể làm việc ra cho bạn:

chart.showResetZoom(); 

Ngoài ra, để cho nút để làm việc một cách chính xác, bạn nên sử dụng axis.zoom thay vì thiết lập các thái cực:

axis.zoom(newMin,newMax); 

Hãy cho tôi biết nếu nó hoạt động!

+0

tôi gọi này bên trong xử lý sự kiện afterSetExtremes cho x và trục y. Nút bây giờ vẫn còn trên biểu đồ, nhưng nhấp vào nút đó không làm bất cứ điều gì. – SteveP

+0

Bạn đã thử sử dụng axis.zoom() thay vì setExtremes chưa? Nó được gọi là axis.zoom (newMin, newMax); Có lẽ việc kích hoạt sự kiện thu phóng từ chức năng đó sẽ làm cho nút hoạt động chính xác. Chỉ là một ý tưởng. – MatthewKremer

+0

Nếu bạn thiết lập http://JSFiddle.net, tôi có thể xem nó. – MatthewKremer

4

Bạn có thể sử dụng showResetZoom, nhưng bạn phải kiểm tra xem nút đặt lại đã hiển thị hay chưa, nếu không nó sẽ không biến mất.

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

Cách tiếp cận này hoạt động tốt:

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

này được giả định rằng nút duy nhất mà có thể hiển thị là nút "Reset Phóng". Nếu nó đã có, không hiển thị khác.

Nếu bạn không thực hiện kiểm tra này, một nút mới sẽ được thêm vào mỗi lần bạn gọi showResetZoom(). Nhấp vào nút hiển thị (gần đây nhất) sẽ đặt lại thu phóng và xóa nút nhưng các nút cũ hơn vẫn hiển thị và không làm gì cả.

0

Nếu bạn đang sử dụng setExtremes bạn cũng có thể thiết lập min và max null để thiết lập lại:

chart.xAxis[0].setExtremes(null, null) 
Các vấn đề liên quan