Skip to content
","url":"https://ez4code.com/snippets/echarts-responsive","keywords":"echarts, responsive","author":{"@type":"Person","name":"EZ4Code Team"},"publisher":{"@type":"Organization","name":"EZ4Code","logo":{"@type":"ImageObject","url":"https://ez4code.com/logo.png"}},"datePublished":"2024-01-01","dateModified":"2026-08-01","image":"https://ez4code.com/og-image.png"}
ECharts

Responsive

Resize chart on window and container changes, with cleanup.

By EZ4Code Team
echartsresponsive

Code

<!-- Sized container drives the chart -->
<div id="chart" style="width: 100%; height: 400px;"></div>

<script>
const dom = document.getElementById('chart');
const chart = echarts.init(dom);

function resize() { chart.resize(); }
window.addEventListener('resize', resize);

chart.setOption({ /* options */ });

// Observe container size changes (e.g. sidebar collapse)
const ro = new ResizeObserver(() => chart.resize());
ro.observe(dom);

// Cleanup when removed
function destroy() {
  window.removeEventListener('resize', resize);
  ro.disconnect();
  chart.dispose();
}

// React/Vue pattern: call destroy() on unmount
</script>

Explanation

ECharts does not auto-detect container changes, so window resize must call chart.resize(). For layout-driven changes (collapsing sidebars, flex resizing), wrap the chart in a ResizeObserver that calls resize() on every observed change. Always call chart.dispose() and disconnect listeners on teardown to avoid memory leaks in SPA routes.

More ECharts Snippets