<template>
<div>
<transition-group name="slide" tag="div">
<img v-for="(item, index) in items" :key="index" :src="item"/>
</transition-group>
<button @click="prev">Prev</button>
<button @click="next">Next</button>
</div>
</template>
<script>
export default {
data() {
return {
items: [
'https://picsum.photos/id/100/300/150',
'https://picsum.photos/id/101/300/150',
'https://picsum.photos/id/102/300/150'
],
currentIndex: 0
}
},
methods: {
prev() {
this.currentIndex = (this.currentIndex + this.items.length - 1) % this.items.length
},
next() {
this.currentIndex = (this.currentIndex + 1) % this.items.length
}
}
}
</script>
<style>
.slide-enter-active,
.slide-leave-active {
transition: all 0.3s;
}
.slide-enter,
.slide-leave-to {
transform: translateX(-100%);
}
</style>
上面的代码使用了Vue的transition组件和transition-group组件,并使用了next()和prev()方法控制轮播图的前进和后退。同时使用了CSS动画实现图像的滑动效果。