elementui 修改el-tabs底部滑块划线的transform滑动距离

因为自定义了tab栏样式,tab下面的划线就出现了错位,调样式调了很久都差点意思,最后决定动态修改划线部分的transform样式;

代码部分:

html部分

html 复制代码
<el-tabs v-model="activeName" @tab-click="handleClick" stretch>
...
</el-tabs>

js部分

js 复制代码
handleClick(tab) {
      this.activeName = tab.name;
      // 修改el-tabs的transform滑动距离
      this.$nextTick(() => {
        const index = tab.index
        let ele = document.getElementsByClassName('el-tabs__active-bar')[0]; // 获取tab底部滑块划线元素
        let cele = document.getElementsByClassName('el-tabs__item')[index]; // 获取tab-item元素
        const rect = cele.getBoundingClientRect(); // 获取某个元素距离窗口四边的距离
        const left = rect.left;
        // console.log('cele', cele, rect, left);
        // 我页面tab有3个,这里只处理了3个tab时候的滑动距离,根据自己项目的实际情况来修改
        let distance = index == 0 ? left+18.5 : index == 1 ? left+18 : left+28.5;
        // console.log('distance--', index, distance);
        ele.style.transform = `translateX(${distance}px)`
      })
    },
相关推荐
汪子熙6 分钟前
什么是 Angular 开发中的 Dumb components
前端·javascript·angular.js
前端李易安13 分钟前
javaScript中如何实现函数缓存,案例解析
开发语言·javascript·缓存
Ian102521 分钟前
webGL入门(五)绘制多边形
开发语言·前端·javascript·webgl
终末圆21 分钟前
TypeScript 基本使用指南【前端 26】
前端·javascript·typescript
susu108301891124 分钟前
前端vue3中父div width: 40%; height: 62%; 子div如何设置相对父位置不变
开发语言·前端·javascript
It'sMyGo24 分钟前
js中的深拷贝与浅拷贝 手写深拷贝代码
开发语言·前端·javascript
敲代码的彭于晏25 分钟前
感谢掘金,我的书出版了
前端·javascript·vue.js
家里有蜘蛛28 分钟前
Vue 3 魔法揭秘:CSS 解析与 scoped 背后的奇幻之旅
前端·css·vue.js
程序员大金30 分钟前
基于SpringBoot+Vue+MySQL的在线酷听音乐系统
java·前端·javascript·vue.js·spring boot·后端·mysql
anyup_前端梦工厂33 分钟前
JS设计模式之桥接模式:搭建跨越维度的通路
前端·javascript·设计模式