vue图片轮播

<template>
    <div class="banner">
        <transition name="banner">
            <div class="img" v-for="(item, index) in datalist" v-if="num==index" :key="index">
  				{{item.name}}
            </div>
        </transition>
    </div>
</template>

<script>
export default {
    name: 'rotation',
    data() {
        return {
            datalist: [
                {name:'11111'},
                {name:'1144'},
                {name:'122221'}
            ],
            num: 0, // 默认显示第几个
            animateTime: 5000 // 要和 css 的过渡一致
        }
    },
    mounted() {
        this.play() // 初始的时候加载
    },
    methods: {
        autoPlay() { // num自增,通过判断 num 和 index 相不相等,来显示对应 index 的banner
            let _this = this // 避免作用域的问题
            _this.num++
            if(_this .num === 3) {
                _this.num = 0
            }
        },
        play () { // 设置定时器,让banner显示隐藏
            let _this = this
            setInterval(this.autoPlay, _this.animateTime)
        }
    }
}
</script>

<style scoped>
.banner{width: 100%; height: 100%;position: relative; overflow: hidden;}
.banner .img{width: 100%; height: 100%;position: absolute;top: 0;}

.banner-enter-active, .banner-leave-active{transition: all 2s ease-in-out;}

.banner-enter{opacity: 0; left: 100%;}
.banner-enter-to{opacity: 1; left: 0;}

.banner-leave{opacity: 1; left: 0;}
.banner-leave-to{opacity: 0; left: -100%;}
</style>

```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值