为了账号安全,请及时绑定邮箱和手机立即绑定

小程序上传多张图片

标签:
WebApp

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

考虑问题:
1.上传的多少张图片?
2.上传后想删除?
3.如何控制布局,用好用flex布局。

关键代码:

 /** 选择图片 */
  chooseImage: function () {    var that = this;
    wx.chooseImage({      count: 9 - that.data.imgArr.length,      sizeType: ['original', 'compressed'], 
      sourceType: ['album', 'camera'], 
      success: function (res) {        if (res.tempFilePaths.count == 0) {          return;
        }        //上传图片
        var imgArrNow = that.data.imgArr;
        imgArrNow = imgArrNow.concat(res.tempFilePaths);
        that.setData({          imgArr: imgArrNow
        })
        that.chooseViewShow();
      }
    })
  },

代码中的9是中最多传9张图片,图片类型是否为压缩,图片来源是相册还是相机。

/** 删除图片 */
  deleteImv: function (e) {    var imgArr = this.data.imgArr;    var itemIndex = e.currentTarget.dataset.id;
    imgArr.splice(itemIndex, 1);    this.setData({      imgArr: imgArr
    })    //判断是否隐藏选择图片
    this.chooseViewShow();
  },

删除照片,改变布局格式显示。

/** 是否隐藏图片选择 */
  chooseViewShow: function () {    if (this.data.imgArr.length >= 9) {      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链接列表
    })
  },

用到系统自带的方法,点击图片预览大图。

demo地址为:https://github.com/dt8888/moreImgaes



作者:honey缘木鱼
链接:https://www.jianshu.com/p/296680d6b173


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消