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


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实现的点击数量加一可操作数据库
May 09 Javascript
基于jQuery实现的菜单切换效果
Oct 16 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
小程序实现单选多选功能
Nov 04 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
JS查找孩子节点简单示例
Jul 25 Javascript
生成无限制的微信小程序码的示例代码
Sep 20 Javascript
es5 类与es6中class的区别小结
Nov 09 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制作静态网站的模板框架(四)
2006/10/09 PHP
PHP 递归效率分析
2009/11/24 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python使用turtule画五角星的方法
2015/07/09 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python实现从wind导入数据
2019/12/03 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
python实现计算图形面积
2021/02/22 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
销售员自我评价怎么写
2013/09/19 职场文书
幼儿教师研修感言
2014/02/12 职场文书
运动会稿件50字
2014/02/17 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
高中运动会前导词
2015/07/20 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
Python first-order-model实现让照片动起来
2022/06/25 Python