首先我们需要给表格tbody一个高度,如何增上高度需要一下代码
table tbody {
display: block;
height: 500px;
overflow: hidden;
}
table thead,
tbody tr,
tfoot tr {
display: table;
width: 100%;
height: 40px;
table-layout: fixed;
text-align:center;
}
table thead {
width: calc( 100% - 1em)
}
给 tbody 加一个 ref=“aa”
move(start, end) {
var step = 0;
var maxStep = 16;
var everyStep = (end - start) / maxStep;
var moveTimer = setInterval(() => {
step++;
if (step <= maxStep) {
this.$refs.aa.scrollTop = this.$refs.aa.scrollTop + everyStep;
} else {
clearInterval(moveTimer);
}
}, 120);
},
对于maxStep 和moveTimer 定时器时间是可以 根据具体情况改的 达到你想要的效果
clock() {
var num = 0;
setInterval(() => {
num++;
if (num > (this.sumNum - 8)) {
num = 0;
}
this.move(this.$refs.aa.scrollTop, 60 * num);
}, 2000);
},
我的this.sumNum 是所有的数据 减8是我的表格默认显示了8条数据
60*num 也是根据情况自己改, 此定时器的时间也是可以自行修改的。
如果dom还没有加载 拿不到你请求的数据的话 可以这样调用方法
this.$nextTick(() => { this.clock(); });