mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
[improvement] Swipe: add indicator slot
This commit is contained in:
parent
93b567fd70
commit
7e8cb981bc
@ -43,6 +43,21 @@
|
|||||||
<van-swipe-item>4</van-swipe-item>
|
<van-swipe-item>4</van-swipe-item>
|
||||||
</van-swipe>
|
</van-swipe>
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
|
<demo-block :title="$t('title6')">
|
||||||
|
<van-swipe @change="onChange">
|
||||||
|
<van-swipe-item>1</van-swipe-item>
|
||||||
|
<van-swipe-item>2</van-swipe-item>
|
||||||
|
<van-swipe-item>3</van-swipe-item>
|
||||||
|
<van-swipe-item>4</van-swipe-item>
|
||||||
|
|
||||||
|
<template slot="indicator">
|
||||||
|
<div class="custom-indicator">
|
||||||
|
{{ this.current + 1 }}/4
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</van-swipe>
|
||||||
|
</demo-block>
|
||||||
</demo-section>
|
</demo-section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -54,6 +69,7 @@ export default {
|
|||||||
title3: '监听 change 事件',
|
title3: '监听 change 事件',
|
||||||
title4: '纵向滚动',
|
title4: '纵向滚动',
|
||||||
title5: '设置滑块大小',
|
title5: '设置滑块大小',
|
||||||
|
title6: '自定义指示器',
|
||||||
message: '当前 Swipe 索引:'
|
message: '当前 Swipe 索引:'
|
||||||
},
|
},
|
||||||
'en-US': {
|
'en-US': {
|
||||||
@ -61,12 +77,14 @@ export default {
|
|||||||
title3: 'Change Event',
|
title3: 'Change Event',
|
||||||
title4: 'Vertical Scrolling',
|
title4: 'Vertical Scrolling',
|
||||||
title5: 'Set Swiper Item Size',
|
title5: 'Set Swiper Item Size',
|
||||||
|
title6: 'Custom indicator',
|
||||||
message: 'Current Swipe index:'
|
message: 'Current Swipe index:'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
current: 0,
|
||||||
images: [
|
images: [
|
||||||
'https://img.yzcdn.cn/public_files/2017/09/05/3bd347e44233a868c99cf0fe560232be.jpg',
|
'https://img.yzcdn.cn/public_files/2017/09/05/3bd347e44233a868c99cf0fe560232be.jpg',
|
||||||
'https://img.yzcdn.cn/public_files/2017/09/05/c0dab461920687911536621b345a0bc9.jpg',
|
'https://img.yzcdn.cn/public_files/2017/09/05/c0dab461920687911536621b345a0bc9.jpg',
|
||||||
@ -78,6 +96,7 @@ export default {
|
|||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onChange(index) {
|
onChange(index) {
|
||||||
|
this.current = index;
|
||||||
this.$toast(this.$t('message') + index);
|
this.$toast(this.$t('message') + index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,5 +143,15 @@ export default {
|
|||||||
line-height: 200px;
|
line-height: 200px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.custom-indicator {
|
||||||
|
position: absolute;
|
||||||
|
right: 5px;
|
||||||
|
bottom: 5px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #fff;
|
||||||
|
background: rgba(0, 0, 0, .1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -88,6 +88,38 @@ export default {
|
|||||||
</van-swipe>
|
</van-swipe>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Custom Indicator
|
||||||
|
|
||||||
|
```html
|
||||||
|
<van-swipe @change="onChange">
|
||||||
|
<van-swipe-item>1</van-swipe-item>
|
||||||
|
<van-swipe-item>2</van-swipe-item>
|
||||||
|
<van-swipe-item>3</van-swipe-item>
|
||||||
|
<van-swipe-item>4</van-swipe-item>
|
||||||
|
|
||||||
|
<template slot="indicator">
|
||||||
|
<div class="custom-indicator">
|
||||||
|
{{ this.current + 1 }}/4
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</van-swipe>
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
export default {
|
||||||
|
methods: {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
current: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onChange(index) {
|
||||||
|
this.current = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### API
|
### API
|
||||||
|
|
||||||
| Attribute | Description | Type | Default |
|
| Attribute | Description | Type | Default |
|
||||||
|
@ -11,15 +11,18 @@
|
|||||||
>
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<slot name="indicator">
|
||||||
v-if="showIndicators && count > 1"
|
<div
|
||||||
:class="b('indicators', { vertical })"
|
v-if="showIndicators && count > 1"
|
||||||
>
|
:class="b('indicators', { vertical })"
|
||||||
<i
|
>
|
||||||
v-for="index in count"
|
<i
|
||||||
:class="b('indicator', { active: index - 1 === activeIndicator })"
|
v-for="index in count"
|
||||||
/>
|
:class="b('indicator', { active: index - 1 === activeIndicator })"
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
|
</slot>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -65,5 +65,18 @@ exports[`renders demo correctly 1`] = `
|
|||||||
<!---->
|
<!---->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="van-swipe">
|
||||||
|
<div class="van-swipe__track" style="width:0px;transition-duration:500ms;transform:translateX(0px);">
|
||||||
|
<div class="van-swipe-item" style="width:0px;height:100%;transform:translateX(0px);">1</div>
|
||||||
|
<div class="van-swipe-item" style="width:0px;height:100%;transform:translateX(0px);">2</div>
|
||||||
|
<div class="van-swipe-item" style="width:0px;height:100%;transform:translateX(0px);">3</div>
|
||||||
|
<div class="van-swipe-item" style="width:0px;height:100%;transform:translateX(0px);">4</div>
|
||||||
|
</div>
|
||||||
|
<div class="custom-indicator">
|
||||||
|
1/4
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
@ -88,6 +88,38 @@ export default {
|
|||||||
</van-swipe>
|
</van-swipe>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 自定义指示器
|
||||||
|
|
||||||
|
```html
|
||||||
|
<van-swipe @change="onChange">
|
||||||
|
<van-swipe-item>1</van-swipe-item>
|
||||||
|
<van-swipe-item>2</van-swipe-item>
|
||||||
|
<van-swipe-item>3</van-swipe-item>
|
||||||
|
<van-swipe-item>4</van-swipe-item>
|
||||||
|
|
||||||
|
<template slot="indicator">
|
||||||
|
<div class="custom-indicator">
|
||||||
|
{{ this.current + 1 }}/4
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</van-swipe>
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
export default {
|
||||||
|
methods: {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
current: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onChange(index) {
|
||||||
|
this.current = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### API
|
### API
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 |
|
| 参数 | 说明 | 类型 | 默认值 |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user