drip-ui
Version:
Lightweight Mobile UI Components built on Vue
153 lines (139 loc) • 4.11 kB
Markdown
> list为图片列表快捷设置,如果你需要自定义一些样式,或者内容并不为纯图片,可以引用swiper-item组件来自定义。
```javaScript
list 格式如下
[{
url: '',
img: '',
title: ''
}, {
url: '',
img: '',
title: ''
}]
```
##### 注意:
**在使用 swiper-item 而非 list 图片列表时,如果只有两项,将无法实现 loop 循环播放.**
```html
<demo-block :title="'自动轮播 循环播放'">
<drip-swiper
:list="list"
height="120px"
@on-index-change="getVal"
loop
auto>
</drip-swiper>
<p>通过on-index-change获取当前index</p>
<p>current index: {{demo1Val}}</p>
</demo-block>
<demo-block :title="'aspect-ratio根据当前宽度计算高度 提示点位于中下方 v-model绑定index'">
<drip-swiper
:list="list"
loop
auto
:aspect-ratio="300/1100"
v-model="demo2Val"
dots-position="center-down">
</drip-swiper>
<p>current index: {{demo2Val}}</p>
</demo-block>
<demo-block :title="'swiper-item'">
<drip-swiper
:aspect-ratio="300/1100"
dots-position="center-down">
<drip-swiper-item
class="demo3"
v-for="(item, index) in list"
:key="index">
<img :src="item.img">
</drip-swiper-item>
</drip-swiper>
</demo-block>
<demo-block :title="'垂直滚动'">
<drip-swiper
height="30px"
auto
loop
direction="vertical"
:interval=2000
class="text-scroll"
:show-dots="false">
<drip-swiper-item
v-for="(item, index) in list2"
:key="index">
<p v-text="item"></p>
</drip-swiper-item>
</drip-swiper>
</demo-block>
```
```javascript
data () {
return {
list: [{
url: 'javascript:',
img: 'http://alioss.sdbao.com/home/banner/banner.png',
title: '111'
}, {
url: 'javascript:',
img: 'http://alioss.sdbao.com/home/banner/banner2.png',
title: '222'
}, {
url: 'javascript:',
img: 'http://alioss.sdbao.com/home/banner/banner3.png',
title: '333'
}],
list2: [
'哈哈哈哈',
'啦啦啦啦',
'嘎嘎嘎嘎'
],
demo1Val: 0,
demo2Val: 1
}
},
methods: {
getVal (val) {
this.demo1Val = val
}
}
```
```css
.demo3 {
img {
width: 90%;
margin: 0 auto;
display: block;
}
}
.text-scroll {
border: 1px solid #ddd;
border-left: none;
border-right: none;
p {
font-size: 24px;
text-align: center;
line-height: 30px;
}
}
```
### API
| 参数 | 说明 | 类型 | 默认值 |
|-----------|-----------|-----------|-------------|
| v-model| index绑定,使用v-model,一般不需要绑定 | `Number` | 0 |
| list | 图片列表 | `Array` | - |
| direction | 轮播方向 `horizontal`:左右轮播 `vertical`:上下轮播 | `String` | horizontal |
| show-dots | 是否显示提示点 | `Boolean` | true |
| show-desc-mask | 是否展示半透明遮罩 | `Boolean` | false |
| dots-position | 提示点位置 `left | center | right | left-down | right_down | center-down`前三个提示点在图片内部,后三个在图片下方 | `String` | right |
| dots-class | 提示点的className | `String` | - |
| auto | 是否自动轮播 | `Boolean` | false |
| loop | 是否循环轮播 | `Boolean` | false |
| interval | 轮播停留时长 | `Number` | 3000 |
| threshold | 滑动超出这个距离才开始滑动 | `Number` | 50 |
| duration | 切换动画时间 | `Number` | 300 |
| height | 高度值。如果为100%宽度并且知道宽高比,可以设置aspect-ratio自动计算高度 | `String` | '180px' |
| aspect-ratio | 用以根据当前可用宽度计算高度值 | `Number` | - |
| min-moving-distance | 超过这个距离才滑动 | `Number` | 0 |
### event
name | params | description
---|--- | --- | ---
on-index-change | currentIndex | 轮播 index 变化时触发