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


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 相关文章推荐
会自动逐行上升的文本框
Jun 30 Javascript
JavaScript设置FieldSet展开与收缩
May 15 Javascript
基于jquery的划词搜索实现(备忘)
Sep 14 Javascript
jqgrid 简单学习笔记
May 03 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
使用ajax的post同步执行(实现方法)
Dec 21 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 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
关于时间计算的结总
2006/12/06 PHP
php5数字型字符串加解密代码
2008/04/24 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
javascript 常用方法总结
2009/06/03 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
python re的findall和finditer的区别详解
2020/11/15 Python
如何将字串String转换成整数int
2015/02/21 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
幼儿园教师的考核评语
2014/04/18 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
《青山不老》教学反思
2016/02/22 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
基于Python实现一个春节倒计时脚本
2022/01/22 Python