更新记录
4.0(2022-07-16)
下载此版本
1.由于上传图片数量不确定性,决定移除rowNum属性,由组件自动计算
2.为了根据设定的图片大小自动适应屏幕宽度,新增属性 colNum,指定每行图片的列数即可自适应屏幕宽度
3.其他优化
3.0(2021-10-19)
下载此版本
1.修复页面滚动后拖拽错乱的问题
2.优化拖拽动画效果,更自然,更流畅
2.0(2021-05-07)
下载此版本
1.优化动画
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
app-vue app-nvue |
× |
√ |
√ |
√ |
√ |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
属性说明
属性名 |
类型 |
默认值 |
说明 |
imgList |
Array |
[] |
图片列表 |
imgPadding |
Number |
20 |
图片内边距 |
colNum |
Number |
4 |
每行的图片列数 |
imgRadius |
Number |
10 |
图片圆角 |
enableDel |
Boolean |
false |
是否开启删除图片模式 |
事件说明
事件名 |
说明 |
返回值 |
@moveEndList |
移动结束后的新图片列表 |
[] |
@addImg |
添加图片点击事件 |
|
@delImg |
删除图片点击事件 |
[] |
使用方法
配置easycom规则后,自动按需引入,无需import
组件,直接引用即可。
<template>
<xiaokeai-dragImage
:imgList.sync="imgList"
@moveEndList="moveEndList"
/>
</template>
示例
<template>
<view class="content" >
<image class="logo" src="/static/logo.png"></image>
<xiaokeai-dragImage
:enableDel="enableDel"
:imgList.sync="imgList"
@moveEndList="moveEndList"
@addImg="addImg"
@delImg="delImg"
>
<view class="addImgBtn">添加</view>
</xiaokeai-dragImage>
<button type="default" @click="startDel">删除</button>
</view>
</template>
<script>
export default {
data() {
return {
enableDel: false,
imgList: [{ url: '/static/logo.png' }],
};
},
onLoad() {
this.imgList = [{ url: 'xxx' }];
},
methods: {
moveEndList(e) {
console.log('移动结束后的新图片列表');
console.log(e);
},
addImg() {
console.log('添加图片点击事件');
let _this = this;
uni.chooseImage({
count: 6, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function(res) {
for (var i = 0; i < res.tempFilePaths.length; i++) {
_this.imgList.push({
url: res.tempFilePaths[i]
});
}
}
});
},
delImg(e) {
console.log('删除图片点击事件');
console.log(e);
},
startDel() {
this.enableDel = !this.enableDel;
}
}
};
</script>
<style>
.content {
}
.addImgBtn {
width: 100%;
height: 100%;
display: flex;
color: #ffffff;
justify-content: center;
align-items: center;
background-color: #999999;
}
</style>