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


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 相关文章推荐
js获得参数的getParameter使用示例
Feb 26 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
Dec 14 Javascript
JS左右无缝轮播功能完整实例
May 16 Javascript
深入理解JavaScript 箭头函数
May 30 Javascript
js实现图片实时时钟
Jan 15 Javascript
js实现选项卡效果
Mar 07 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 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里面的抽象类
2010/01/28 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
Jquery插件写法笔记整理
2012/09/06 Javascript
extjs render 用法介绍
2013/09/11 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
纯JS实现五子棋游戏
2020/05/28 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
python返回昨天日期的方法
2015/05/13 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
python如何统计代码运行的时长
2019/07/24 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
上海微创软件面试题
2012/06/14 面试题
机电专业个人求职信范文
2013/12/30 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
合作协议书怎么写
2014/04/18 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书