chart.jschartjs-plugin-zoom

ChartJS Zoom Granularity


The data I'm working with has a 'floor' granularity of 'Days'. Anything more fine-grain (e.g. hours) does not make sense. However the ChartJS plugin allows the user to keep zooming to finer scales.

How can I detect that the zoom level has now hit 'Days' and prevent any further zoom-in? I would like to allow zooming from year -> day level but nothing past this.


Solution

  • I solved this with what I consider a hack:

    1. Hook into the onZoomStart callback. (docs)
    2. Read the values (dates in millis) of the x-axis Ticks (docs)
    3. Check if the duration between any two consecutive dates is less than 1day.

    Notes: