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)`
      })
    },
相关推荐
~无忧花开~13 分钟前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
@大迁世界1 小时前
1.什么是 ReactJS?
前端·javascript·react.js·前端框架·ecmascript
前端Hardy3 小时前
Wails v3 正式发布:用 Go 写桌面应用,体积仅 12MB,性能飙升 40%!
前端·javascript·go
Highcharts.js3 小时前
Highcharts React v4 迁移指南(下):分步代码示例与常见问题解决
javascript·react.js·typescript·react·highcharts·代码示例·v4迁移
Laurence3 小时前
Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说
前端·javascript·c++·后端·交互·qwebchannel·互操作
Pu_Nine_94 小时前
JavaScript 字符串与数组核心方法详解
前端·javascript·ecmascript
这是个栗子4 小时前
前端开发中的常用工具函数(六)
javascript·every
kyriewen4 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
前端·javascript·面试
前端Hardy4 小时前
别再手动写 loading 了!封装一个自动防重提交的 Hook
前端·javascript·vue.js
前端Hardy4 小时前
前端如何实现“无感刷新”Token?90% 的人都做错了
前端·javascript·vue.js