效果圖

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
})
},
})