tkdwns1245 opened a new issue, #21367:
URL: https://github.com/apache/echarts/issues/21367

   ### What problem does this feature solve?
   
   **Summary**
   
   Currently, the rectangle drag-to-zoom gesture seems to be tied to the 
toolbox dataZoom feature. If I hide the toolbox button 
(toolbox.feature.dataZoom.show = false), I can still zoom with the mouse wheel 
via dataZoom: [{ type: 'inside' }], but I cannot drag-select a range to zoom. 
I’d like to enable the same drag-to-zoom gesture without showing the toolbox 
button.
   
   **Use cases**
   
   Clean/minimal UI where we don’t want any toolbar buttons.
   
   Kiosk or embedded dashboards where gestures (wheel/drag) are preferred to 
visible controls.
   
   Custom toolbars that control zoom state, while keeping ECharts’ native 
drag-zoom gesture.
   
   **Current behavior**
   
   dataZoom: [{ type: 'inside' }] enables wheel/pinch zoom and panning, but 
there is no built-in rectangle drag gesture unless the toolbox dataZoom button 
is visible and toggled.
   
   **Desired behavior**
   
   Provide a config to enable drag-to-zoom gesture independently of the toolbox 
visibility.
   
   Example: users can hold a modifier key (e.g., Shift) and drag to select a 
window to zoom, or simply drag without a modifier (configurable).
   
   **Live demo (CodeSandbox)**
   
   Minimal repro: https://codesandbox.io/p/sandbox/dmwjy9
   
   ### What does the proposed API look like?
   
   dataZoom: [{
     type: 'inside',
     dragToZoom: true,         // NEW: enable rectangle drag zoom
     dragModifierKey: 'shift', // 'none' | 'shift' | 'ctrl' | 'alt' (optional)
     dragDirection: 'auto',    // 'x' | 'y' | 'auto'
   }]
   
   
   (or) expose this via a new top-level interaction option:
   
   interaction: {
     dragZoom: { enable: true, modifierKey: 'shift', axis: 'x' }
   }
   
   
   Workarounds tried
   
   dataZoom: [{ type: 'inside' }] → wheel zoom works, but no rectangle drag.
   
   brush component can draw rectangles, but doesn’t behave like a smooth zoom 
gesture and needs additional glue code.
   
   Custom pointer handlers → re-implementing zoom logic becomes non-trivial 
(coord transforms, axis sync, etc.).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to