美文网首页
2022-08-30 el-table 实现自动滚动

2022-08-30 el-table 实现自动滚动

作者: 半眼鱼 | 来源:发表于2022-08-30 12:14 被阅读0次

表格代码 要加上 ref="table"

<template>
  <div class="">
    <el-table :data="tableData" ref="table" height="150" style="width: 100%">
 
          <el-table-column prop="date" label="日期" width="180"> </el-table-column>
 
          <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
 
          <el-table-column prop="address" label="地址"> </el-table-column>
 
    </el-table>
  </div>
</template>
<script>
export default {
  data() {
    return {
        tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
           {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          },
          {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          }],
    }
  },
   mounted() {
    this.infinitScroll()
  },
  methods: {
    infinitScroll() {
      // 拿到表格挂载后的真实DOM
      const table = this.$refs.table;
      // 拿到表格中承载数据的div元素
      const divData = table.bodyWrapper
      divData.onmouseover = function () {
        clearInterval(t);
      }; //鼠标移入,停止滚动
      divData.onmouseout = function () {
        start()
      }; //鼠标移出,继续滚动
 
      // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
      let t;
      function start() {
        // 数据少于表格高度停止滚动
        if (divData.clientHeight >= divData.scrollHeight){
          return;
        }
        t = setInterval(() => {
        // 元素自增距离顶部1像素
        divData.scrollTop += 1
        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
          // 重置table距离顶部距离
          divData.scrollTop = 0
        }
      }, 100)
      }
      start()
    },
  },
 
}
</script>

相关文章

网友评论

      本文标题:2022-08-30 el-table 实现自动滚动

      本文链接:https://www.haomeiwen.com/subject/duulnrtx.html