53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
<template>
 | 
						|
	    <view class='swiper'>
 | 
						|
	        <swiper :autoplay="autoplay" :circular="circular" :interval="interval" :duration="duration" @change="swiperChange">
 | 
						|
	            <block v-for="(item,index) in imgUrls" :key="index">
 | 
						|
	              <swiper-item>
 | 
						|
	                <navigator :url="item.link" style='width:100%;height:100%;' hover-class='none'><image :src="item.img" class="slide-image"/></navigator>
 | 
						|
	              </swiper-item>
 | 
						|
	            </block>
 | 
						|
	        </swiper>
 | 
						|
	        <view class="dots acea-row">
 | 
						|
	          <view class="dot" :class="index == currentSwiper ? 'active' : ''" v-for="(item,index) in imgUrls" :key="index"></view>
 | 
						|
	        </view>
 | 
						|
	    </view>
 | 
						|
</template>
 | 
						|
 | 
						|
	<script>
 | 
						|
		export default {
 | 
						|
			
 | 
						|
			props: {
 | 
						|
				 imgUrls: {
 | 
						|
				 	type: Array,
 | 
						|
				 	default: function(){
 | 
						|
				 		return [];
 | 
						|
				 	}
 | 
						|
				 }
 | 
						|
			},
 | 
						|
			data() {
 | 
						|
				return {
 | 
						|
					circular: true,
 | 
						|
					    autoplay: true,
 | 
						|
					    interval: 3000,
 | 
						|
					    duration: 500,
 | 
						|
					    currentSwiper: 0
 | 
						|
				};
 | 
						|
			},
 | 
						|
			
 | 
						|
			methods: {
 | 
						|
				swiperChange: function (e) {
 | 
						|
					 this.currentSwiper = e.detail.current
 | 
						|
				    }
 | 
						|
			}
 | 
						|
		}
 | 
						|
	</script>
 | 
						|
 | 
						|
<style scoped lang="scss">
 | 
						|
	.swiper{width:100%;height:282rpx;position:relative;}
 | 
						|
	.swiper swiper{width:100%;height:100%;position:relative;}
 | 
						|
	.swiper swiper .slide-image{width:100%;height:100%;}
 | 
						|
	.swiper .dots{position:absolute;right:40rpx;bottom:20rpx;}
 | 
						|
	.swiper .dots .dot{width:12rpx;height:12rpx;border:2rpx solid #fff;border-radius:50%;margin-right:15rpx;}
 | 
						|
	.swiper .dots .dot.active{border-color:$theme-color;background-color:$theme-color;}
 | 
						|
</style>
 |