最近在做一个小程序的项目,初次接触,也是边学边做,目前遇到图片处理的相关问题,在此记录,也对有需要的朋友提供一些帮助。 类似于微信朋友圈发布图片,长按指定图片删除
长按图片删除,不足9张可以继续添加
图片预览效果
![](https://i-blog.csdnimg.cn/blog_migrate/f9e4589d895c5a49709c46d77f3abc0c.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/dd7d34d86db853f1e6bacf60da202e38.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/091328d711ef41ef5a8fa4f17af38a4b.jpeg)
长按图片删除,不足9张可以继续添加
![](https://i-blog.csdnimg.cn/blog_migrate/16014c724d206b13b688a76e37f20e2a.jpeg)
图片预览效果
实现思路:
- 调整页面,实现展示效果
- 使用wx.chooseImage实现拍照和选择照片
- 使用wx.previewImage实现图片预览
- 使用bindlongpress自定义图片删除功能
话不多说,上代码:
wxml代码
<view class="weui-cells">
<view class="weui-cell">
<view class="weui-cell__bd">
<view class="weui-uploader">
<view class="weui-uploader__hd">
<view class="weui-uploader__title">图片上传</view>
<view class="weui-uploader__info">{{files.length}} / 9</view>
</view>
<view class="weui-uploader__bd">
<view class="weui-uploader__files" id="uploaderFiles">
<block wx:for="{{files}}" wx:key="*this">
<view class="weui-uploader__file" bindtap="previewImage" bindlongpress="deleteImage" id="{{item}}" data-index="{{index}}">
<image class="weui-uploader__img" src="{{item}}" mode="aspectFill"/>
</view>
</block>
</view>
<view wx:if="{{files.length < 9}}" class="weui-uploader__input-box" >
<view class="weui-uploader__input" bindtap="chooseImage"></view>
</view>
</view>
</view>
</view>
</view>
</view>
js代码
Page({
data: {
files: []
},
chooseImage: function(e) {
var that = this;
var images = that.data.files;
wx.chooseImage({
count: 9 - images.length,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: function(res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
that.setData({
files: that.data.files.concat(res.tempFilePaths)
});
}
})
},
previewImage: function(e) {
wx.previewImage({
current: e.currentTarget.id,
urls: this.data.files
})
},
deleteImage: function(e) {
var that = this;
var images = that.data.files;
var index = e.currentTarget.dataset.index; //获取当前长按图片下标
wx.showModal({
title: '系统提醒',
content: '确定要删除此图片吗?',
success: function(res) {
if (res.confirm) {
images.splice(index, 1);
} else if (res.cancel) {
return false;
}
that.setData({
files: images
});
}
})
}
})
下面没有了,以上就是实现的全部代码!! 附上微信小程序官方教程 —— [ 微信小程序API ]