<banner>
是一个轮播控件,支持无限循环,支持任意组件。
支持包括 <div>
在内的任何组件作为自己的子组件。因此,在写一个组件时,推荐外层使用 <div>
作为根容器。
<template>
<div class="app">
<banner class="banner" @itemClick="itemClick">
<div class="banner-frame" v-for="img in imageList">
<image class="banner-image" resize="cover" :src="img.src"></image>
</div>
</banner>
</div>
</template>
<style scoped>
.app {
width: 750px;
flex: 1;
}
.banner {
width: 750px;
height: 420px;
}
.banner-frame {
width: 750px;
height: 420px;
position: relative;
}
.banner-image {
width: 750px;
height: 420px;
}
</style>
<script>
const pmui = app.requireModule('pmui');
export default {
data() {
return {
imageList: [
{ src: 'https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg'},
{ src: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg'},
{ src: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg'}
]
}
},
methods: {
itemClick(res) {
pmui.toast("点击" + (res.position + 1) + "项")
}
}
};
</script>
属性名 | 类型 | 描述 | 默认值 |
---|---|---|---|
autoPlayDuration | Number |
设置切换间隔时间,单位:毫秒 | 6000 |
scrollDuration | Number |
设置切换过程时间,单位:毫秒 | 900 |
indicatorShow | Boolean |
是否显示指示器 | true |
indicatorShape | Number |
设置指示器形状:0 : 矩形、1 : 圆形 |
1 |
indicatorPosition | Number |
设置指示器位置:0 : 中下、1 : 右下、2 : 左下3 : 中上、4 : 右上、5 : 左上 |
0 |
indicatorMargin | Number |
设置指示器边缘距离 | 8 |
indicatorSpace | Number |
设置指示器间距 | 3 |
selectedIndicatorColor | String |
设置指示器已选颜色 | #3EB4FF |
unSelectedIndicatorColor | String |
设置指示器未选颜色 | #99ffffff |
indicatorWidth | Number |
设置指示器宽 | 6 |
indicatorHeight | Number |
设置指示器高 | 6 |
例如:
<banner
ref="reflectName"
class="banner"
autoPlayDuration="3000"></banner>
callback
/**
* 组件加载完成
*/
@ready = function() { ... }
/**
* 项目点击事件
* 返回参数:data = {
position: 1 //点击项目的序号
}
*/
@itemClick = function(data) { ... }
/**
* 项目长按事件
* 返回参数:data = {position: 1}
*/
@itemLongClick = function(data) { ... }
methods
/**
* 开始自动轮播,默认自动开始
*/
this.$refs.reflectName.startAutoPlay();
/**
* 停止自动轮播
*/
this.$refs.reflectName.stopAutoPlay();
/**
* 设置切换间隔时间
* 参数一:毫秒
*/
this.$refs.reflectName.setAutoPlayDuration(6000);
/**
* 设置切换过程时间
* 参数一:毫秒
*/
this.$refs.reflectName.setScrollDuration(900);
/**
* 设置是否显示指示器
* 参数一:true|false
*/
this.$refs.reflectName.setIndicatorShow(true);
/**
* 设置指示器形状
* 参数一:0-1,详细看pmui.indicatorShape参数
*/
this.$refs.reflectName.setIndicatorShape(0);
/**
* 设置指示器位置
* 参数一:0-5,详细看pmui.indicatorPosition参数
*/
this.$refs.reflectName.setIndicatorPosition(0);
/**
* 设置指示器边缘距离
* 参数一:边缘距离
*/
this.$refs.reflectName.setIndicatorMargin(8);
/**
* 设置指示器间距
* 参数一:间距
*/
this.$refs.reflectName.setIndicatorSpace(3);
/**
* 设置指示器已选颜色
* 参数一:颜色代码
*/
this.$refs.reflectName.setSelectedIndicatorColor('#3EB4FF');
/**
* 设置指示器未选颜色
* 参数一:颜色代码
*/
this.$refs.reflectName.setUnSelectedIndicatorColor('#99ffffff');
/**
* 设置指示器宽
* 参数一:宽
*/
this.$refs.reflectName.setIndicatorWidth(6);
/**
* 设置指示器高
* 参数一:高
*/
this.$refs.reflectName.setIndicatorHeight(6);