微信小程序实现图片选择并预览功能


Posted in Javascript onJuly 25, 2019

本文实例为大家分享了微信小程序实现图片选择并预览的具体代码,供大家参考,具体内容如下

(一)、功能说明

做的是一个意见反馈,用户发表意见和上传图片,限制了最多只能上传三张图片。

其他要点:textarea使用,底部保存按钮固定

(二)、小程序接口说明

wx.chooseLocation(Object object)

从本地相册选择图片或使用相机拍照。

微信小程序实现图片选择并预览功能

(三)、效果图

效果如下:

 微信小程序实现图片选择并预览功能

(四)、代码展示

WXML页面:

<view class="wrap">
 <view class="contant_wrap">
 <view class="contant">
 <textarea name="bindTextAreaBlur" bindblur="bindTextAreaBlur" auto-height placeholder="请描述您的问题或意见(必填)" maxlength="600"/>
 </view>
 <view class="contant-pic">
 <view class="pics-list" wx:for="{{pics}}" wx:key="" >
 <image src="{{item}}" class="uploadImg"></image>
 <image src="../../images/delete.png" class="uploadImg-error" data-img="{{item}}" bindtap='deleteImg'></image>
 </view>
 <image src="../../images/uploadImg.png" class="uploadImg {{isShow?'true':'hideTrue'}}" bindtap='uploadImage' ></image>
 </view>
 </view>
 <view class="phone">
 <input name="inputPhone" bindinput="inputPhone" placeholder="您的手机号或者邮箱(选填)" />
 </view>
 <view class="phone">
 <input name="inputName" bindinput="inputName" placeholder="您的称呼(选填)" />
 </view>
 <view class="bottom" bindtap='submitAdvice'> 保存</view>
</view>

wxss页面:

page{
 background-color: #efefef;
}
.wrap{
 width:90%;
 margin-left:5%;
 margin-top:10px;
 font-size:15px;
}
.contant_wrap{
 background-color: #fff;
}
.contant{
 width: 94%;
 margin: 0 auto
}
textarea{
 min-height:300rpx;
 max-height: 300rpx;
 padding: 10rpx 0;
 width: 100%;
 
}
.contant-pic{
 width: 94%;
 margin: 0 auto;
 height:80px;
 
}
.pics-list{
 width:73px;
 height:73px;
 float:left;
 margin-right:6px;
 
}
.uploadImg{
 width:70px;
 height:70px;
}
.uploadImg-error{
 height:25px;
 width:25px;
 position:relative;
 top:-80px;
 left:55px;
}
.hideTrue {
 display: none
}
.true {
 display: block
}
input{
 margin-top: 30rpx;
 height: 80rpx;
 padding-left: 20rpx;
 background-color: #fff;
}
.placeholder{
 color: #999999;
 font-size: 12pt;
}
.bottom{
 width:100%;
 height:40px;
 background-color:#e64340;
 position:fixed; bottom:0;
 color:#ffff;
 text-align: center;
 line-height: 40px;
}

js中:

// pages/advice/advice.js
Page({
 
 /** 页面的初始数据*/
 data: {
 content:'',
 phone:'',
 name:'',
 advice:'',
 pics:[],
 isShow: true
 },
 /**获取textarea值:评论内容 */
 bindTextAreaBlur:function(e){
 this.setData({
 advice:e.detail.value
 })
 },
 /**获取手机或邮箱*/
 inputPhone: function (e) {
 this.setData({
 phone: e.detail.value
 })
 },
 /**获取称呼 */
 inputName: function (e) {
 this.setData({
 name: e.detail.value
 })
 },
 
 /**上传图片 */
 uploadImage:function(){
 let that=this;
 let pics = that.data.pics;
 wx.chooseImage({
 count:3 - pics.length,
 sizeType: ['original', 'compressed'], 
 sourceType: ['album', 'camera'], 
 success: function(res) {
 let imgSrc = res.tempFilePaths;
  pics.push(imgSrc);
 if (pics.length >= 3){
  that.setData({
  isShow: false
  }) 
 }
 that.setData({
  pics: pics
 })
 },
 })
 
 },
 
 /**删除图片 */
 deleteImg:function(e){
 let that=this;
 let deleteImg=e.currentTarget.dataset.img;
 let pics = that.data.pics;
 let newPics=[];
 for (let i = 0;i<pics.length; i++){
 //判断字符串是否相等
 if (pics[i]["0"] !== deleteImg["0"]){
 newPics.push(pics[i])
 }
 }
 that.setData({
 pics: newPics,
 isShow: true
 })
 
 },
 
 /**提交 */
 submitAdvice:function(){
 let that=this;
 let advice = that.data.advice
 let name=this.data.name
 let phone=this.data.phone
 let pics=this.data.pics
 //保存操作
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript计算时间差的函数分享
Jul 04 Javascript
javascript中Math.random()使用详解
Apr 15 Javascript
在JavaScript中操作时间之setYear()方法的使用
Jun 12 Javascript
axios学习教程全攻略
Mar 26 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 Javascript
vue如何集成raphael.js中国地图的方法示例
Aug 15 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
JS使用H5实现图片预览功能
Sep 30 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
原生js+canvas实现贪吃蛇效果
Aug 02 Javascript
JavaScript中跨域问题的深入理解
Mar 04 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 #Javascript
微信小程序绘制图片发送朋友圈
Jul 25 #Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
Jul 25 #Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 #Javascript
JS查找孩子节点简单示例
Jul 25 #Javascript
微信小程序自定义单项选择器样式
Jul 25 #Javascript
vue实现多组关键词对应高亮显示功能
Jul 25 #Javascript
You might like
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
JavaScript入门之基本函数详解
2011/10/21 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
Nodejs处理异常操作示例
2018/12/25 NodeJs
Vue发布项目实例讲解
2019/07/17 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
python 实现归并排序算法
2012/06/05 Python
python pdb调试方法分享
2014/01/21 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
Python实现的knn算法示例
2018/06/14 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
制定岗位职责的原则
2013/11/08 职场文书
升职自荐书范文
2013/11/28 职场文书
给校长的建议书600字
2014/05/15 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
迎国庆横幅标语
2014/10/08 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
Nginx配置之禁止指定IP访问
2022/05/02 Servers