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


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 相关文章推荐
JQuery Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
javascript测试题练习代码
Oct 10 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 Javascript
深入解读JavaScript中的Iterator和for-of循环
Jul 28 Javascript
如何用javascript计算文本框还能输入多少个字符
Jul 29 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
基于vue如何发布一个npm包的方法步骤
May 15 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
vue element-ui实现动态面包屑导航
Dec 23 Javascript
Ant Design moment对象和字符串之间的相互转化教程
Oct 27 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递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
python pdb调试方法分享
2014/01/21 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python的常见矩阵运算(小结)
2019/08/07 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
成人教育自我鉴定
2013/11/01 职场文书
初中校园之声广播稿
2014/01/15 职场文书
好的旅游活动方案
2014/08/19 职场文书
学校周年庆活动方案
2014/08/22 职场文书
文案策划岗位职责
2015/02/11 职场文书
新年寄语2016
2015/08/17 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL