<div class="tab-inner">
<el-tabs></el-tabs>
<div class="icon" v-show="isShowIcon"></div>
</div>
mounted() {
window.addEventListener('resize', () => {
const newParentWidth = document.querySelector('.tab-inner')?.offsetWidth;
this.handlerTab(newParentWidth);
});
},
// 当小tab的宽度>tabInner容器的宽度时,更多小图标就显示,否则,就不显示
handlerTab(width) {
if (document.querySelector('.tab-inner .el-tabs__nav')) {
const mytabstWidth = document.querySelector('.tab-inner .el-tabs__nav')?.clientWidth;
this.isShowMoreIcon = false;
// 小tab 内容的宽度太长了,一屏放不下,就显示更多小图标(小图标默认不显示)
if (mytabstWidth > width) {
this.isShowMoreIcon = true;
}
}
},
如果拿不到.tab-inner,可以用setTimeout等一下
// 判断右侧更多小图标是否显示
setTimeout(() => {
const parentWidth = document.querySelector('.tab-inner').offsetWidth;
this.handlerTab(parentWidth);
}, 100);