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


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 相关文章推荐
DHTML 中的绝对定位
Nov 26 Javascript
符合W3C网页标准的iframe标签的使用方法
Jul 19 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
webstorm添加vue.js支持的方法教程
Jul 05 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
浅谈Webpack 是如何加载模块的
May 24 Javascript
js实现无限层级树形数据结构(创新算法)
Feb 27 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 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计算2个日期的差值函数分享
2015/02/02 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
模拟select的代码
2011/10/19 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Flask实现跨域请求的处理方法
2018/09/27 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
python实现感知机模型的示例
2020/09/30 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
三星法国官方网站:Samsung法国
2019/10/31 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
中专生自我鉴定
2013/12/17 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
2014年司机工作总结
2014/11/21 职场文书
庆祝教师节主题班会
2015/08/17 职场文书