当前位置:   article > 正文

vue el-table自动无限滚动_el-table无缝滚动

el-table无缝滚动

原先方案是用el-table-column插件来实现但发现在el-table-column的原理是copy原数据做为第二份数据中show-overflow-tooltip会失效,所以换了个JS写法

代码如下:

  1. <div class="table_box2">
  2. <el-table
  3. ref="scroll_table"
  4. height="476"
  5. solt="append"
  6. :data="categoryDataList"
  7. @cell-mouse-enter="mouseEnter"
  8. @cell-mouse-leave="mouseLeave"
  9. >
  10. <el-table-column
  11. v-for="(item, index) in categoryColumList"
  12. :key="index + 'i'"
  13. :label="item.label"
  14. :prop="item.prop"
  15. :width="item.width"
  16. :min-width="item.minWidth"
  17. show-overflow-tooltip
  18. />
  19. </el-table>
  20. </div>

js 

  1. methods: {
  2. // 鼠标进入
  3. mouseEnter() {
  4. this.autoPlay = false;
  5. },
  6. // 鼠标离开
  7. mouseLeave() {
  8. this.autoPlay = true;
  9. },
  10. startMove() {
  11. // 拿到表格挂载后的真实DOM
  12. const table = this.$refs.scroll_table;
  13. if (table) {
  14. // 拿到表格中承载数据的div元素
  15. const divData = table.bodyWrapper;
  16. if (divData) {
  17. if (this.timer) {
  18. clearInterval(this.timer);
  19. }
  20. // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每20毫秒移动1像素)
  21. this.timer = setInterval(() => {
  22. if (this.autoPlay) {
  23. // 元素自增距离顶部1像素
  24. if (divData.scrollTop >= 33) {
  25. const item = this.categoryDataList.shift();
  26. this.categoryDataList.push(item);
  27. divData.scrollTop -= 33;
  28. }
  29. divData.scrollTop += 1;
  30. }
  31. }, 20);
  32. }
  33. }
  34. }
  35. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/193861
推荐阅读