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


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 相关文章推荐
javascript闭包的高级使用方法实例
Jul 04 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
js自定义回调函数
Dec 13 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 Javascript
MUI实现上拉加载和下拉刷新效果
Jun 30 Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
利用vscode调试编译后的js代码详解
May 14 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
原生JS实现贪吃蛇小游戏
Mar 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php中几种常见安全设置详解
2010/04/06 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
javascript self对象使用详解
2016/10/18 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python中的ceil()方法使用教程
2015/05/14 Python
window下eclipse安装python插件教程
2017/04/24 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
职务任命书范本
2014/06/05 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
先进单位申报材料
2014/12/25 职场文书
教师年度个人总结
2015/02/11 职场文书
广告业务员岗位职责
2015/02/13 职场文书
党员干部学习心得体会
2016/01/23 职场文书
商业计划书之服装
2019/09/09 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏