<template>
<div class="carousel-item">
<swiper indicator="false"
style="{{`height:${height};${width};`}}"
onchange="handleChange"
index="{{index}}"
interval="{{interval}}"
duration="{{duration}}"
vertical="{{vertical}}"
previousmargin="{{previousmargin}}"
nextmargin="{{nextmargin}}"
loop="{{loop}}"
autoplay="{{autoplay}}">
<div class="carousel-item__image"
for="(i,n) in list">
<image onclick="handleLookDateil(n)"
src="{{n.src}}"></image>
</div>
</swiper>
<div class="carousel-indicator"
style="{{`margin-top:${distance}px`}}">
<block for="(i,n) in list">
<div class="carousel-indicator__item"
style="{{imageIndex===i?activeStyls:styleStr}}">
</div>
</block>
</div>
</div>
</template>
<script>
export default {
data() {
return {
imageIndex:0
}
},
props: {
list: {
type: Array,
default: [
{
id: "111", //对应的页面id
src:`http://img3.imgtn.bdimg.com/it/u=1977473038,4194935805&fm=26&gp=0.jpg` //图片路径
},
{
id: "222", //对应的页面id
src:`http://img2.imgtn.bdimg.com/it/u=3511654728,3153281898&fm=26&gp=0.jpg` //图片路径
},
{
id: "333", //对应的页面id
src:`http://img2.imgtn.bdimg.com/it/u=3511654728,3153281898&fm=26&gp=0.jpg` //图片路径
},
]
},
styleStr: {
type: String,
default: ` 40px;height: 5px;background-color: red;`
},
activeStyls: {
type: String,
default: ` 40px;height: 5px;background-color: blue;`
},
height:{
type:String,
default:'300px'
},
{
type:String,
default:'100%'
},
index:{
type:Number,
default:0
},
autoplay:{
type:Boolean,
default:false,
},
interval:{
type:Number,
default:3000
},
loop:{
type:Boolean,
default:true
},
duration:{
type:Number
},
vertical:{
type:false
},
previousmargin:{
type:String,
default:'0px'
},
nextmargin:{
type:String,
default:'0px'
},
distance:{
type:[Number,String],
default:20
}
},
handleChange(data) {
this.imageIndex = data.index
},
handleLookDateil(n) {
this.$emit('look', n)
}
}
</script>
<style lang="less" scoped>
.carousel-item {
flex-direction: column;
100%;
swiper {
/* height: 200px; */
.carousel-item__image {
image {
100%;
height: 100%;
}
}
}
.carousel-indicator {
margin-top: 20px;
justify-content: center;
align-item: center;
100%;
height: 40px;
.carousel-indicator__item {
40px;
height: 5px;
/* border-radius: 20px; */
background-color: red;
margin-right: 10px;
}
.active {
background-color: blue;
}
}
}
</style>