微信小程序实现图片上传、删除和预览功能的方法

 更新时间:2017年12月18日 09:51:48   作者:anLazyAnt  
这篇文章主要介绍了微信小程序实现图片上传、删除和预览功能的方法,涉及微信小程序界面布局、事件响应及图片操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了微信小程序实现图片上传、删除和预览功能的方法。分享给大家供大家参考,具体如下:

这里主要介绍一下微信小程序的图片上传图片删除和图片预览

布局

<view class="img-v">
 <view class="img" wx:for="{{imgs}}" wx:for-item="item" wx:key="*this">
  <image src="{{item}}" data-index="{{index}}" mode="aspectFill" bindtap="previewImg"></image>
  <view class="delete-btn" data-index="{{index}}" catchtap="deleteImg"></view>
 </view>
 <view class="upload-img-btn" bindtap="chooseImg"></view>
</view>

JS处理

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

希望本文所述对大家微信小程序开发有所帮助。

相关文章

  • 解决canvas画布使用fillRect()时高度出现双倍效果的问题

    解决canvas画布使用fillRect()时高度出现双倍效果的问题

    下面小编就为大家带来一篇解决canvas画布使用fillRect()时高度出现双倍效果的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • JS中三种URI编码方式对比分析

    JS中三种URI编码方式对比分析

    这篇文章主要介绍了JS中三种URI编码方式对比分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 基于JS实现的笛卡尔乘积之商品发布

    基于JS实现的笛卡尔乘积之商品发布

    本文给大家介绍JS实现的笛卡尔乘积之商品发布的相关内容,涉及到js笛卡尔积算法的相关知识,本文介绍的非常详细,具有参考价值,感兴趣的朋友一起学习吧
    2016-05-05
  • js jquery 获取某一元素到浏览器顶端的距离实现方法

    js jquery 获取某一元素到浏览器顶端的距离实现方法

    今天小编就为大家分享一篇js jquery 获取某一元素到浏览器顶端的距离实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 分享Bootstrap简单表格、表单、登录页面

    分享Bootstrap简单表格、表单、登录页面

    本文给大家分享Bootstrap简单表格、表单、登录页面的实例代码,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-08-08
  • 跟我学习javascript的执行上下文

    跟我学习javascript的执行上下文

    跟我学习javascript的执行上下文,读完本文后,你应该清楚了解释器做了什么,为什么函数和变量能在声明前使用以及它们的值是如何决定的,需要了解这些内容的朋友可以参考下
    2015-11-11
  • openlayers4实现点动态扩散

    openlayers4实现点动态扩散

    这篇文章主要为大家详细介绍了openlayers4实现的点动态扩散,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • js实现网页图片轮换播放

    js实现网页图片轮换播放

    这篇文章主要为大家详细介绍了js实现网页图片轮换播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解

    ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解

    这篇文章主要介绍了ES6中Set和Map数据结构,Map与其它数据结构互相转换操作,结合实例形式详细分析了ES6中的Set和Map数据结构的概念、原理、遍历、去重等操作,以及Map与其它数据结构互相转换操作,需要的朋友可以参考下
    2019-02-02
  • js判断变量是否空值的代码

    js判断变量是否空值的代码

    判断变量是否空值undefined, null, '', false, 0, [], {} 均返回true,否则返回false
    2008-10-10

最新评论