赞
踩
<template> <div> <div class="app-container"> <el-table v-loading="loading" :data="tableData" :max-height="500" ref="scroll_Table" @mouseenter.native="autoScroll(true)" @mouseleave.native="autoScroll(false)" > </el-table> </div> </div> </template> <script> 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.scroll_Table // 拿到表格中承载数据的div元素 const divData = table.$refs.bodyWrapper // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) if (stop) { //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。 window.clearInterval(this.scrolltimer) } else { this.scrolltimer = window.setInterval(() => { // 元素自增距离顶部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>
普通的表格数据自动循环滚动,并且滚动到最后一条数据后,再回到第一条数据进行滚动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。