swiper
滑块视图容器,其中只可放置 <swiper-item/>
组件,否则可能导致异常。
属性名 | 类型 | 默认值 | 说明 | 最低版本 |
---|---|---|---|---|
indicator-dots | Boolean | false | 是否显示面板指示点 | |
indicator-color | String | rgba(0, 0, 0, .3) | 指示点颜色 | |
indicator-active-color | String | rgba(0, 0, 0, 0) | 当前选中的指示点颜色 | |
autoplay | Boolean | false | 是否自动切换 | |
current | Number | 0 | 当前选中滑块的index | |
current-item-id | String | "" | 当前选中滑块的组件id,不能与current属性同时指定 | |
interval | Number | 5000 | 自动切换时间间隔 | |
display-multiple-items | Number | 1 | 同时显示的滑块数量 | |
duration | Number | 500 | 滑动动画时长 | |
circular | Boolean | false | 是否循环播放(首尾衔接) | |
vertical | Boolean | false | 滑块放置方向是否为竖直 | |
bindchange | EventHandler | current 改变时会触发 change 事件,event.detail = {current: current, source: source} |
change
事件的source字段表示导致改变的原因,可以有如下值:
autoplay
自动播放导致swiper变化touch
用户划动导致swiper变化- 其他原因将用空字符串表示。
swiper-item
滑块视图内容。仅可放置在 <swiper/>
组件中,宽高自动设置为100%。
属性名 | 类型 | 默认值 | 说明 | 最低版本 |
---|---|---|---|---|
item-id | String | "" | 组件id |
示例
<view class="page-section">
<swiper indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
<block wx:for="{{background}}">
<swiper-item>
<view class="swiper-item {{item}}"></view>
</swiper-item>
</block>
</swiper>
</view>
<view class="page-section">
<view class="ttui-cells">
<view class="ttui-cell">
<view class="ttui-cell__bd">指示点</view>
<view class="ttui-cell__ft">
<switch checked="{{indicatorDots}}" bindchange="changeIndicatorDots" />
</view>
</view>
<view class="ttui-cell">
<view class="ttui-cell__bd">自动播放</view>
<view class="ttui-cell__ft">
<switch checked="{{autoplay}}" bindchange="changeAutoplay" />
</view>
</view>
</view>
</view>
Page({
data: {
background: ['demo-text-1', 'demo-text-2', 'demo-text-3'],
indicatorDots: true,
vertical: false,
autoplay: false,
interval: 2000,
duration: 500
},
changeIndicatorDots: function (e) {
this.setData({
indicatorDots: !this.data.indicatorDots
})
},
changeAutoplay: function (e) {
this.setData({
autoplay: !this.data.autoplay
})
},
intervalChange: function (e) {
this.setData({
interval: e.detail.value
})
},
durationChange: function (e) {
this.setData({
duration: e.detail.value
})
}
})