小程序开发|小程序制作|小程序开发网

搜索

小程序教学 (图片选择Dome)

2022-5-31 18:31| 发布者: admin| 查看: 293| 评论: 1

摘要: 使用微信小程序来实现一个图片选择器的功能,可以添加图片,可以删除图片,可以大图浏览选中的图片。效果图下面说一下实现思路1.首先实现页面的布局整体图片选择使用一个view控件,前面选中的图片为一个block根据选

使用微信小程序来实现一个图片选择器的功能,可以添加图片,可以删除图片,可以大图浏览选中的图片。


效果图

下面说一下实现思路

1.首先实现页面的布局
整体图片选择使用一个view控件,前面选中的图片为一个block根据选择图片的数量来显示多少个,后面的选择图片按钮为一个view。选中图片上面的删除按钮,使用绝对定位和相对定位来处理。添加图片,删除图片,点击选中图片查看大图等添加一个点击事件

.wxss代码如下

[JavaScript] 纯文本查看 复制代码
                                                                        


.wxss文件如下

[JavaScript] 纯文本查看 复制代码
/*选择图片View*/.addImv{    margin: 20rpx 20rpx;    height: 200rpx;    background-color: #EEEEEE;    border: 1px dashed gray;    display: flex;    align-items: center;    padding: 0 20rpx;}/*添加图片*/.addImv .chooseView{    width: 160rpx;    height: 160rpx;    background-color: #ffffff;    margin-left: 10rpx;    border: 1px solid lightgray;    text-align: center;    line-height: 180rpx;}.addImv .chooseImv{    width: 50rpx;    height: 50rpx;}/*已选择的图片*/.addImv .upFile{    margin-left: 10rpx;    width: 160rpx;    height:160rpx;    position: relative;}.addImv .upFile .itemImv{    width: 100%;    height: 100%;}.addImv .upFile .closeImv{    position: absolute;    right: 0rpx;    top: 0rpx;    width: 50rpx;    height:50rpx;}

2.下面来写.js逻辑代码
(1) 首先在data中定义我们要用到的imgArr:[]图片数组,chooseViewShow:true是否显示添加图片控件。
当点击图片的时候,调用微信小程序APIwx.chooseImage获取到选中的图片数组,需要注意的是,每次选择的图片个数为:4-已选择的图片个数。
把选中的图片数组添加到所有选中的图片数组中

[JavaScript] 纯文本查看 复制代码
var imgArrNow = that.data.imgArr;imgArrNow = imgArrNow.concat(res.tempFilePaths);

(2) 点击删除图片的时候,获取到点击图片的下标,然后从数组中移除

[JavaScript] 纯文本查看 复制代码
var imgArr = this.data.imgArr;var itemIndex = e.currentTarget.dataset.id;imgArr.splice(itemIndex, 1);

(3) 每一次选择完图片,或者删除完图片的时候,都看一下是否要显示添加图片控件

[JavaScript] 纯文本查看 复制代码
chooseViewShow: function () {    if (this.data.imgArr.length >= 4) {      this.setData({        chooseViewShow: false      })    } else {      this.setData({        chooseViewShow: true      })    }  },

(4) 点击已经选中的图片的时候,获取下标,然后调用微信小程序wx.previewImage查看大图。



整体js代码如下


[JavaScript] 纯文本查看 复制代码
Page({  data: {    imgArr: [],    chooseViewShow: true,  },  onLoad: function () {      },    /** 选择图片 */  chooseImage: function () {    var that = this;    wx.chooseImage({      count: 4 - that.data.imgArr.length,//最多选择4张图片      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有      success: function (res) {        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片        console.log(res.tempFilePaths);        if (res.tempFilePaths.count == 0) {          return;        }        //上传图片        //显示图片        var imgArrNow = that.data.imgArr;        imgArrNow = imgArrNow.concat(res.tempFilePaths);        console.log(imgArrNow);        that.setData({          imgArr: imgArrNow        })        that.chooseViewShow();      }    })  },  /** 删除图片 */  deleteImv: function (e) {    var imgArr = this.data.imgArr;    var itemIndex = e.currentTarget.dataset.id;    imgArr.splice(itemIndex, 1);    console.log(imgArr);    this.setData({      imgArr: imgArr    })    //判断是否隐藏选择图片    this.chooseViewShow();  },    /** 是否隐藏图片选择 */  chooseViewShow: function () {    if (this.data.imgArr.length >= 4) {      this.setData({        chooseViewShow: false      })    } else {      this.setData({        chooseViewShow: true      })    }  },  /** 显示图片 */  showImage: function (e) {    var imgArr = this.data.imgArr;    var itemIndex = e.currentTarget.dataset.id;    wx.previewImage({      current: imgArr[itemIndex], // 当前显示图片的http链接      urls: imgArr // 需要预览的图片http链接列表    })  },})











免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

引用 风琴来 2022-5-31 20:26
正好找这资料,先看看

查看全部评论(1)

返回顶部