1、前言

实现效果:普通的表格数据自动循环滚动,并且滚动到最后一条数据后,再回到第一条数据进行滚动。

2、代码实现

<template>
  <div>
    <div class="app-container"&gt;
      <el-table
        v-loading="loading"
        :data="tableData"
        :max-height="200"
        ref="scrollTable"
        @mouseenter.native="autoScroll(true)"
        @mouseleave.native="autoScroll"
      &gt;
      </el-table&gt;
    </div&gt;
  </div&gt;
</template&gt;
<script&gt;
import mixins from "./mixins";
export default {
  data() {
  	return {
  		loading: false,
        tableData: [],
        scrolltimer: '', // 自动滚动的定时任务
  	}
  },
  mounted() {
      this.autoScroll()
  },
  beforeDestroy() {
   	this.autoScroll(true)
  },
  methods: {
  	// 设置自动滚动
    autoScroll(stop) {
        const table = this.$refs.scrollTable
        // 拿到表格中承载数据div元素
        const divData = table.$refs.bodyWrapper
        // 拿到元素后,对元素进行定时增加距离顶部距离实现滚动效果(此配置为每100毫秒移动1像素)
        if (stop) {
            //再通过事件监听监听组件销毁 后,再执行关闭计时器
            window.clearInterval(this.scrolltimer)
        } else {
            this.scrolltimer = window.setInterval(() =&gt; {
                // 元素自增距离顶部1像素
                divData.scrollTop += 1
                // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
                if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
                    // 重置table距离顶部距离
                    divData.scrollTop = 0
                    // 重置table距离顶部距离。值=(滚动到底部时,距离顶部大小) - 整个高度/2
                    // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
                }
            }, 150) // 滚动速度
        }
    },
  }
};
</script>

原文地址:https://blog.csdn.net/DarlingYL/article/details/130830167

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26088.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注