您好,以下是用vue2实现您的需求的代码:
```
<template>
<div class="container" style="width: 400px; height: 600px; overflow: hidden;">
<div class="list" style="width: 400px; height: 2000px; position: relative; top: 0;">
<div class="item" v-for="(item, index) in list" :key="index" style="width: 400px; height: 200px; position: absolute; top: {{index * 200}}px;">
<div>{{item.name}}</div>
<div>{{item.event}}</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ name: 'csw1', event: 'hhhhh' },
{ name: 'csw2', event: 'hhhhh' },
{ name: 'csw3', event: 'hhhhh' },
{ name: 'csw4', event: 'hhhhh' },
{ name: 'csw5', event: 'hhhhh' },
{ name: 'csw6', event: 'hhhhh' },
{ name: 'csw7', event: 'hhhhh' },
{ name: 'csw8', event: 'hhhhh' },
{ name: 'csw9', event: 'hhhhh' },
{ name: 'csw10', event: 'hhhhh' },
],
timer: null,
currentIndex: 0,
};
},
mounted() {
this.startCarousel();
},
methods: {
startCarousel() {
this.timer = setInterval(() => {
this.currentIndex += 1;
if (this.currentIndex >= this.list.length) {
clearInterval(this.timer);
setTimeout(() => {
this.list.push(
{ name: 'csw11', event: 'hhhhh' },
{ name: 'csw12', event: 'hhhhh' },
{ name: 'csw13', event: 'hhhhh' },
{ name: 'csw14', event: 'hhhhh' },
{ name: 'csw15', event: 'hhhhh' },
{ name: 'csw16', event: 'hhhhh' },
{ name: 'csw17', event: 'hhhhh' },
{ name: 'csw18', event: 'hhhhh' },
{ name: 'csw19', event: 'hhhhh' },
{ name: 'csw20', event: 'hhhhh' },
);
this.startCarousel();
}, 10000);
} else {
this.$refs.list.style.top = `-${this.currentIndex * 200}px`;
}
}, 2000);
},
},
};
</script>
```
请注意,这只是一个简单的实现,可能还有一些细节需要您自己去完善。