1.实现效果:
2.具体代码:
<view class="swiper_box">
<swiper class="ms_swiper" :autoplay="true" circular="true" @change="swiperChange">
<swiper-item v-for="(item,index) in banner" :key="index">
<view class="swipers">
<image class="swiper-item" @tap="previewImage(index)" :src="item" mode="widthFix"></image>
</view>
</swiper-item>
</swiper>
<view slot="indicator" class="indicator-num">
<text class="indicator-num__text">{
{ swiperCurrent }}/{
{ banner.length }}</text>
</view>
</view>
<script>
export default {
data() {
return {
swiperCurrent: 1,
banner: [],
}
},
methods: {
swiperChange(e) {
this.swiperCurrent = e.detail.current + 1
},
previewImage(index) {
uni.previewImage({
current: index,
urls: this.banner
})
},
}
}
</script>
<style>
.swiper_box {
width: 100%;
height: 750rpx;
position: relative;
}
.ms_swiper,
.ms_swiper swiper-item,
.swipers,
.swipers image {
width: 100%;
height: 750rpx !important;
}
.indicator-num {
background-color: rgba(0, 0, 0, 0.35);
border-radius: 20rpx;
width: 96rpx;
height: 39rpx;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 20rpx;
bottom: 30rpx;
}
.indicator-num__text {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
}
</style>