通过定时器控制数据的margin-top实现数据滚动,滚动到一定位置时将数组的前几条数据push进数组,同时把这几条数据删除
废话不说了,上代码
<div class="realData">
<ul :style="{'marginTop':marginTop+'px'}">
<li v-for="(item,index) in realData" :key='index'>{{item}}</li>
</ul>
</div>
data(){
return{
marginTop:0, // 数据的margin-top
realData:['第一条数据','第二条数据','第三条数据','第四条数据','第五条数据','第六条数据',],
timer:'' // 定时器
}
}
created(){
this.timer= setInterval(this.showNotice, 100) //100表示间隔时间,数字越大滚得越快
},
methods:{
// 数据循环滚动
showNotice(){
this.marginTop -= 1
if(this.marginTop < -36){ // 滚上去36px后把前两条数据拉下来
this.realData.push(this.realData[0])
this.realData.push(this.realData[1]) // 因为项目要求数据一条白一条黄,所以两条两条循环
this.realData.shift()
this.realData.shift()
this.marginTop = 0
}
},
}
<style>
.realData{
height:57px;
margin:0 0 20px 30px;
font-size:12px;
overflow: hidden;
ul{
height:100%;
color:#fff;
li:nth-child(odd){
color:#d48265;
}
}
}
</style>
版权声明:本文为weixin_44217525原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。