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


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如何判断不同系统的浏览器类型
Oct 28 Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
JavaScript onclick事件使用方法详解
May 15 Javascript
微信小程序实现倒计时功能
Nov 19 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
一个捕获函数输出的函数
2007/02/14 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
python中map()与zip()操作方法
2016/02/27 Python
深入浅析python继承问题
2016/05/29 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
python 列表推导式使用详解
2019/08/29 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
python 操作excel表格的方法
2020/12/05 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
数控技术学生的自我评价
2014/02/15 职场文书