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


Posted in Javascript onDecember 18, 2017

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

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

布局

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

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

Javascript 相关文章推荐
js对象数组按属性快速排序
Jan 31 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
Jul 15 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
使用AngularJS 应用访问 Android 手机的图片库
Mar 24 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
Vue.directive()的用法和实例详解
Mar 04 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
详解webpack-dev-server的简单使用
Apr 02 Javascript
深入理解js 中async 函数的含义和用法
May 13 Javascript
浅谈JS和jQuery的区别
Mar 27 jQuery
Vue使用Proxy代理后仍无法生效的解决
Nov 13 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 #Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 #Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 #Javascript
分析JavaScript数组操作难点
Dec 18 #Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 #Javascript
JavaScript模块详解
Dec 18 #Javascript
webpack打包js文件及部署的实现方法
Dec 18 #Javascript
You might like
PHP提取中文首字母
2008/04/09 PHP
php mssql 数据库分页SQL语句
2008/12/16 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php函数连续调用实例分析
2015/07/30 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
Python实现的石头剪子布代码分享
2014/08/22 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python高级用法总结
2018/05/26 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
python利用opencv保存、播放视频
2020/11/02 Python
python中if嵌套命令实例讲解
2021/02/25 Python
员工趣味活动方案
2014/08/27 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers