实现一个无限循环滚动的列表

通过js定时器+css过渡 实现一个Vue2版本的无限循环滚动的列表,经常用于可视化大屏数据的滚动展示

HTML

   <div style="height: 305px;overflow: hidden;">
      <div :class="{ anim: animate === true }">
        <div v-for="(item,index) in lists" :key="index" class="container">
          <span>{{ item }}</span>
        </div>
      </div>
    </div>

JS

export default {
	data() {
    return {
     	lists: [
        	'您现在看到的',
       		'是一个',
        	'无限循环的',
        	'滚动的',
        	'不借助插件实现的',
        	'vue2版本的列表示例',
        	'如果喜欢',
        	'请三连谢谢'
     	 ],
    	}
    },
    mounted() {
	 this.intervalId = setInterval(this.scroll, 1500)
	},
 	beforeDestroy() {
    	clearInterval(this.intervalId)
  	},
  	
  	methods: {
    	scroll() {
	    	this.animate = true
      		setTimeout(() => {
       			this.lists.push(this.lists[0])
        		this.lists.shift()
        		this.animate = false
      		}, 500)
    	},
   }
}

CSS

.container{
  margin-bottom: 4px;
  width: 500px;
  height: 35px;
  color: #fff;
}
.anim{
  transition: all 0.5s;
  margin-top: -41px;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值