element 表格监听表格滑动到底部加载更多

项目场景:

element 表格监听表格滑动到底部加载更多
提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)
效果:
在这里插入图片描述


解决方案:

// 在main.js文件写入一个滚动指令

Vue.directive('loadmore', {
    bind(el, binding) {
      const selectWrap = el.querySelector('.el-table__body-wrapper')
      selectWrap.addEventListener('scroll', function() {
        let sign = 0
        const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
        if (scrollDistance <= sign) {
          binding.value()
        }
      })
    }
  })

表格内写入高度,v-loading加载特效(可不加), v-loadmore=“loadMore” 自定义指令

<el-table border :data="tableData" height="300" style="width: 1200px;margin:25px auto 0" v-loading="loading" v-loadmore="loadMore">

methods中

loadMore() {
      console.log("滚动到了底部");
      this.loading = true;
      var list = {
        date: "2016-05-03",
        name: "王小虎111111",
        address: "上海市普陀区",
        time: "2016-05-04",
      };
      this.tableData.push(list);
      setTimeout(()=>{
          this.loading = false;
      },500)
    },
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以监听 el-table 的滚动事件,并在滚动时关闭表格中的 el-select。以下是一个可能的实现: ```html <template> <div class="table-container" @scroll="handleTableScroll"> <el-table ref="table" :data="tableData"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column prop="gender" label="Gender"> <template slot-scope="scope"> <el-select v-model="scope.row.gender" :disabled="selectDisabled"> <el-option label="Male" value="male"></el-option> <el-option label="Female" value="female"></el-option> </el-select> </template> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { name: 'John', age: 28, gender: 'male' }, { name: 'Jane', age: 24, gender: 'female' }, { name: 'Bob', age: 36, gender: 'male' }, // ... ], selectDisabled: false } }, methods: { handleTableScroll() { // 获取表格容器元素和表格元素 const tableContainer = this.$refs.table.$el.parentNode const table = this.$refs.table.$el.querySelector('.el-table__body-wrapper') // 判断表格是否滚动到了底部 if (tableContainer.scrollTop + tableContainer.clientHeight >= table.scrollHeight) { // 关闭 el-select this.selectDisabled = true } else { // 打开 el-select this.selectDisabled = false } } } } </script> ``` 在这个实现中,我们首先在 el-table 的容器元素上监听了滚动事件 `@scroll="handleTableScroll"`,然后在 `handleTableScroll` 方法中获取了表格容器元素和表格元素,并判断表格是否滚动到了底部。如果滚动到了底部,就将 `selectDisabled` 设置为 `true`,关闭所有 el-select 组件;否则,将 `selectDisabled` 设置为 `false`,打开所有 el-select 组件。最后,我们将 `selectDisabled` 绑定到所有 el-select 的 `:disabled` 属性上,以实现关闭或打开 el-select。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野猪佩奇007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值