效果图
index.wxml
<!-- 打开截图 开始 -->
<view class="imageContainer">
<view class="imageFrame">
<view class="imageSingle" wx:for="{
{imgs}}" wx:for-item="item" wx:key="*this">
<image class="imagePic"
src="{
{item}}"
data-index="{
{index}}" mode="aspectFill" bindtap="previewImg">
<icon type="cancel" class="imageRemove" data-index="{
{index}}" catchtap="deleteImg"></icon>
</image>
</view>
<!-- 用来提示用户上传图片 -->
<view class="imageSingle" bindtap="chooseImg">
<image class="imagePic" src="/image/imageAdd.png"></image>
</view>
</view>
</view>
<!-- 打开截图 结束 -->
index.wxss
/* 图片容器 */
.imageContainer {
width: 100%;
background-color: white;
/* 子容器水平居中 */
display: flex;
flex-direction: column;
align-items: center;
/* border: 1rpx solid black; */
}
/* 图片框架 */
.imageFrame {
margin: 30rpx 0;
width: 93%;
/* border: 1rpx solid red; */
}
/* 单张图片 */
.imageSingle {
width: 32%;
float: left;
position: relative;
margin-right: 7rpx;
/* border: 1rpx solid blue; */
}
/* 添加图片+预览照片 */
.imagePic {
width: 100%;
height: 222rpx;
}
/* 删除图片 */
.imageRemove {
position: absolute;
top: 0;
right: 0;
}
index.js
Page({
/**
* 页面的初始数据
*/
data: {
imgs: [],
},
// 上传图片
chooseImg: function (e) {
var that = this;
var imgs = this.data.imgs;
if (imgs.length >= 9) {
this.setData({
lenMore: 1
});
setTimeout(function () {
that.setData({
lenMore: 0
});
}, 2500);
return false;
}
wx.chooseImage({
// count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths;
var imgs = that.data.imgs;
console.log(tempFilePaths + '----');
for (var i = 0; i < tempFilePaths.length; i++) {
if (imgs.length >= 9) {
that.setData({
imgs: imgs
});
return false;
} else {
imgs.push(tempFilePaths[i]);
}
}
console.log(imgs);
that.setData({
imgs: imgs
});
}
});
},
// 删除图片
deleteImg: function (e) {
var imgs = this.data.imgs;
var index = e.currentTarget.dataset.index;
imgs.splice(index, 1);
this.setData({
imgs: imgs
});
},
// 预览图片
previewImg: function (e) {
//获取当前图片的下标
var index = e.currentTarget.dataset.index;
//所有图片
var imgs = this.data.imgs;
wx.previewImage({
//当前显示图片
current: imgs[index],
//所有图片
urls: imgs
})
},
})