vue elementUI table表格自定义样式滚动

复制代码
<template>
  <div class="table-wrapper">
    <el-table
      :header-cell-style="getRowClass"
      :row-class-name="tableRowClassName"
      :data="tableData"
      style="width: 100%;color:#fff; font-size: 12px;margin:0 auto;"
      ref="tableXj1"
      height="278px"
    >
      <el-table-column
        label="设备名称"
        prop="MACHINENAME"
        min-width="40"
        align="center"
      >
      </el-table-column>
      <el-table-column
        label="设备名称"
        prop="MACHINENAME"
        min-width="40"
        align="center"
      >
      </el-table-column>
      <el-table-column
        label="设备名称"
        prop="MACHINENAME"
        min-width="40"
        align="center"
      >
      </el-table-column>
      <el-table-column
        label="异常现象"
        prop="FAULTDESCRIBE"
        min-width="40"
        align="center"
      >
      </el-table-column>
      <el-table-column
        label="设备名称"
        prop="MACHINENAME"
        min-width="40"
        align="center"
      >
      </el-table-column>
      <el-table-column
        label="设备名称"
        prop="MACHINENAME"
        min-width="40"
        align="center"
      >
      </el-table-column>
    </el-table>
  </div>
</template>
<script>

export default {
  data() {
    return {
      intervalId: null,
      tableData: [
        { MACHINENAME: 10001, FAULTDESCRIBE: 'Test1' },
        { MACHINENAME: 10002, FAULTDESCRIBE: 'Test2' },
        { MACHINENAME: 10003, FAULTDESCRIBE: 'Test3' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
        { MACHINENAME: 10004, FAULTDESCRIBE: 'Test4' },
      ],
    }
  },

  mounted: function () {
    const tableXj1 = this.$refs.tableXj1
    const divDataXj1 = tableXj1.bodyWrapper
    this.intervalId = setInterval(() => {
      divDataXj1.scrollTop += 2
      if (divDataXj1.clientHeight + divDataXj1.scrollTop == divDataXj1.scrollHeight) {
        divDataXj1.scrollTop = 0
      }
    }, 100)
  },
  methods: {
    // 设置隔行变色
    tableRowClassName({ rowIndex }) {
      if (rowIndex % 2 === 0) {
        return 'yellow'
      } else {
        return 'orange'
      }
    },
    getRowClass({ row, column, rowIndex, columnIndex }) {
      return "background:rgba(31, 94, 167, 0.4);color:#326aff";
    },
  },
  beforeDestroy() {
    clearInterval(this.intervalId);
  },
}
</script>
<style scoped>
.table-wrapper /deep/ .el-table .el-table__body-wrapper {
    overflow-y: hidden !important;
}
.table-wrapper /deep/.el-table,
.el-table__expanded-cell {
    background-color: transparent !important;
}
.table-wrapper /deep/ tr,
.table-wrapper /deep/ th,
.table-wrapper /deep/ td {
    border-bottom: 0px;
}
.table-wrapper >>> .el-table__row > td {
    border: none;
}
.table-wrapper >>> .el-table th.el-table__cell.is-leaf {
    border-bottom: none !important;
}
.table-wrapper >>> .el-table__inner-wrapper::before {
    height: 0;
}
::v-deep .el-table__body {
    -webkit-border-vertical-spacing: 13px;
    border: none !important;
}
::v-deep .yellow {
    border: none !important;
    background: linear-gradient(90deg, rgba(31, 94, 167, 0) 3%, rgba(31, 94, 167, 0.4) 40%, rgba(31, 94, 167, 0.4) 70%, rgba(31, 94, 167, 0) 100%) !important;
}
::v-deep .orange {
    background: linear-gradient(90deg, rgba(31, 94, 167, 0) 3%, rgba(31, 94, 167, 0.2) 50%, rgba(31, 94, 167, 0.2) 70%, rgba(31, 94, 167, 0) 100%) !important;
}
.table-wrapper /deep/ .el-table th > .cell {
    color: #fff !important;
    border: none !important;
}
.table-wrapper /deep/ .el-table--fit {
    padding: 20px;
}

.table-wrapper /deep/ .el-table tr {
    background-color: transparent !important;
    border: none !important;
}
.table-wrapper /deep/ .el-table th > .cell {
    color: #fff !important;
}
.table-wrapper /deep/ .el-table--fit {
    padding: 20px;
}
.table-wrapper /deep/ .el-table,
.el-table__expanded-cell {
    background-color: transparent;
}

.table-wrapper /deep/ .el-table tr {
    background-color: transparent !important;
}
.table-wrapper /deep/ .el-table--enable-row-transition .el-table__body td,
.el-table .cell {
    background-color: transparent;
}
</style>
相关推荐
前端Hardy37 分钟前
别再忽略 Promise 拒绝了!你的 Node.js 服务正在“静默自杀”
前端·javascript·面试
前端Hardy39 分钟前
别再被setTimeout闭包坑了!90% 的人都写错过这个经典循环
前端·javascript·vue.js
小林coding1 小时前
专为程序员打造的简历模版来啦!覆盖前端、后端、测开、大模型等专业简历
前端·后端
前端Hardy1 小时前
你的 Vue 组件正在偷偷吃掉内存!5 个常见的内存泄漏陷阱与修复方案
前端·javascript·面试
RaidenLiu1 小时前
Flutter Platform Channel 底层架构解析 —— 从 BinaryMessenger 到跨平台消息通信机制
前端·flutter·前端框架
bluceli1 小时前
CSS容器查询:响应式设计的新范式
前端·css
Tapir1 小时前
被 Karpathy 下场推荐的 NanoClaw 是什么来头
前端·后端·github
前端人类学1 小时前
深入解析JavaScript中的null与undefined:区别、用法及判断技巧
前端·javascript
ssshooter2 小时前
Tauri 项目实践:客户端与 Web 端的授权登录实现方案
前端·后端·rust
兆子龙2 小时前
【React】19 深度解析:掌握新一代 React 特性
前端·架构