vue的表格实现轮播表

如何在el-table表格中实现轮播表,每一列数据上向自动滚动?

一、思路:我们只需要获取到表格的数据数组,然后设置一个定时器即可,每秒将第一个元素添加至数组末尾,在将第一位元素删除。
二、代码:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="jquery.min.js"></script>
		<script src="../Echarts/vue.min.js"></script>
		<script src="../Echarts/element.js"></script>
		<link rel="stylesheet" type="text/css" href="css/element.css" />
	</head>

	<body>
		<div id="box">
			<el-table :data="tableData" style="width: 100%;height:300px;">
				<el-table-column prop="date" label="日期" width="180">
				</el-table-column>
				<!--<el-table-column prop="name" label="姓名" width="180">-->
				</el-table-column>
				<el-table-column prop="address" label="地址">
				</el-table-column>
		</div>

		<script>
			new Vue({
     
     
				el: '#box',
				data: {
     
     
//					animate: false,
					tableData: [{
     
     
						date: '1',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1518 弄'
					}, {
     
     
						date: '2',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1517 弄'
					}, {
     
     
						date: '3',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1519 弄'
					}, {
     
     
						date: '4',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '5',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '6',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '7',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '8',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '9',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '10',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '11',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}, {
     
     
						date: '12',
						name: '王小虎',
						address: '上海市普陀区金沙江路 1516 弄'
					}]
				},
				created() {
     
     
					setInterval(this.scroll, 1000)
				},
				methods: {
     
     
					scroll(){
     
     
					      let el = document.querySelector('.el-table__body-wrapper')
					      el.addClassName = 'anim'
					       setTimeout(()=>{
     
      
					              // console.log(this.items[0])
					              this.tableData.push(this.tableData[0]);  // 将数组的第一个元素添加到数组的
					              this.tableData.shift();    //删除数组的第一个元素
					       },1000)
					    }
				}

			})
		</script>
		<style scoped>
		.anim{
     
     
		  animation: mymove 1s linear;
		}
		 
		@keyframes mymove
		{
     
     
		from {
     
     
		  transform: translateY(0px) ;
		}
		to {
     
     
		  transform: translateY(-20px) ;
		}
		}
		</style>

	</body>

</html>

在这里插入图片描述

这样就ok了,但是存在缺陷,就是轮播不是缓缓的,是突然的向上,但是总归是实现了循环轮播!如果想无缝缓缓的轮播,那就比较麻烦了,网上很多方法都试过,放在el-table上感觉有点问题,如果是普通的table就成功了!

猜你喜欢

转载自blog.csdn.net/weixin_43005654/article/details/123245145