Maison > Questions et réponses > le corps du texte
Joué en boucle
C'est la partie données
data() {
return {
prizeList: [
{ name: 0 },
{ name: 1 },
{ name: 2 },
{ name: 3 },
{ name: 4 }
]
}
}
C'est mon code actuel, il ne peut que faire des cycles et changer, il n'y a pas d'effet d'animation
setInterval(async () => {
let first = this.prizeList.splice(0, 1)
this.prizeList.push(...first)
}
世界只因有你2017-05-19 10:45:20
Vous pouvez changer d'avis et utiliser la transition pour y parvenir
<p class="scroll-wrap">
<ul class="scroll-content" :style="{ top }">
<li v-for="item in prizeList">{{item.name}}</li >
</ul>
</p>
export default {
data () {
return {
prizeList: [
{ name: 0 },
{ name: 1 },
{ name: 2 },
{ name: 3 },
{ name: 4 }
],
activeIndex: 0
}
},
computed: {
top() {
return - this.activeIndex * 50 + 'px';
}
},
mounted() {
setInterval(_ => {
if(this.activeIndex < this.prizeList.length) {
this.activeIndex += 1;
} else {
this.activeIndex = 0;
}
}, 1000);
}
};
.scroll-wrap{
width: 200px;
height: 50px;
border: 1px solid blue;
overflow: hidden;
}
.scroll-content{
position: relative;
transition: top 0.5s;
li{
line-height: 50px;
text-align: center;
}
}
Effet
怪我咯2017-05-19 10:45:20
documentation officielle vue
Bibliothèque d'effets d'animation
Très simple à utiliser :
import 'animate'
<transition
name="custom-classes-transition"
enter-active-class="animated bounceIn" //animate 提供的动画效果
leave-active-class="animated bounceOutRight"
>
... //要使用动画效果的内容
</transition>