el-tabs 点击 el-tab-pane 带有 v-if 的 echarts 图表时页面跳至顶部
问题描述
在 vue elementpuls 中使用 el-tabs 时,el-tab-pane 中包含了三个使用 v-if 的 echarts 图表。当点击这些图表时,页面会自动滚动到顶部。
解决方案
立即学习“前端免费学习笔记(深入)”;
1. 设置图表容器的高度
有一种可能的原因是 echarts 图表的容器高度在 v-if 切换时发生了变化,导致页面重新布局并跳到顶部。给图表容器添加一个固定高度,例如:
.chart-container { height: 500px; }
2. 重新考虑使用 v-if
echarts 图表并不需要使用 v-if 来控制显示隐藏。可以尝试使用 v-show,并在合适的时机进行初始化或设置选项:
<el-tab-pane v-show="tab1visible"> <div id="chart1"></div> </el-tab-pane>
const chart1 = echarts.init(document.getElementById('chart1')); if (tab1Visible) { // 初始化图表 chartInstance.setOption(/* ... */); } else { // 设置图表选项 chartInstance.setOption(/* ... */); }