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

 更新时间: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
  })
 }

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

相关文章

  • 15条JavaScript最佳实践小结

    15条JavaScript最佳实践小结

    如果你的JavaScript代码只是增加一些功能,那么尽管大胆地把文件引用放在HTML底部吧,你会看到明显的速度提升。本文总结了15条小建议,感兴趣的朋友可以参考下
    2013-08-08
  • JavaScript数组之展开运算符详解

    JavaScript数组之展开运算符详解

    这篇文章主要给大家介绍了关于JavaScript数组之展开运算符的相关资料,你可以通过展开操作符(Spread operator)扩展一个数组对象和字符串,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • js multiple全选与取消全选实现代码

    js multiple全选与取消全选实现代码

    本文章总结了利用jquery与js实现multiple全选与取消全选代码有需要参考的朋友可参考下
    2012-12-12
  • js+css实现回到顶部按钮(back to top)

    js+css实现回到顶部按钮(back to top)

    这篇文章主要为大家详细介绍了js+css实现回到顶部按钮back to top回到顶部按钮,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • JS构建页面的DOM节点结构的实现代码

    JS构建页面的DOM节点结构的实现代码

    本来想用json格式的,可是要么有重复,要么得嵌套,所以改用对象嵌套数组
    2011-12-12
  • innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解

    innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解

    这篇文章主要介绍了javascript中的innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解,都是个人经验的总结,分享给大家,希望大家能够喜欢。
    2015-03-03
  • svg动画之动态描边效果

    svg动画之动态描边效果

    本文主要介绍了svg实现的动态描边效果,文中分享了两个实例:1.一个简单的线一点一点画出来的效果;2.用同样的原理画一个“蓝胖子”。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • javascript事件冒泡,事件捕获和事件委托详解

    javascript事件冒泡,事件捕获和事件委托详解

    这篇文章主要介绍了javaScript 事件冒泡,事件捕获和事件委托的相关资料,需要的朋友可以参考下,希望能够给你带来帮助
    2021-11-11
  • JavaScript模块规范之AMD规范和CMD规范

    JavaScript模块规范之AMD规范和CMD规范

    本篇文章给大家介绍js模块规范之AMD规范和CMD规范,模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式,对js amd cmd规范感兴趣的童鞋可以来本文学习
    2015-10-10
  • js原生跨域_用script标签的简单实现

    js原生跨域_用script标签的简单实现

    下面小编就为大家带来一篇js原生跨域_用script标签的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09

最新评论