微信小程序?qū)崿F(xiàn)圖片選擇并預(yù)覽功能
本文實例為大家分享了微信小程序?qū)崿F(xiàn)圖片選擇并預(yù)覽的具體代碼,供大家參考,具體內(nèi)容如下
(一)、功能說明
做的是一個意見反饋,用戶發(fā)表意見和上傳圖片,限制了最多只能上傳三張圖片。
其他要點: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({
/** 頁面的初始數(shù)據(jù)*/
data: {
content:'',
phone:'',
name:'',
advice:'',
pics:[],
isShow: true
},
/**獲取textarea值:評論內(nèi)容 */
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
//保存操作
}
})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS 設(shè)計模式之:單例模式定義與實現(xiàn)方法淺析
這篇文章主要介紹了JS 設(shè)計模式之:單例模式,結(jié)合實例形式分析了JS 單例模式原理、定義、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下2020-05-05
JS根據(jù)瀏覽器窗口大小實時動態(tài)改變網(wǎng)頁文字大小的方法
這篇文章主要介紹了JS根據(jù)瀏覽器窗口大小實時動態(tài)改變網(wǎng)頁文字大小的方法,涉及JavaScript針對頁面寬高的動態(tài)獲取與元素樣式動態(tài)運算的相關(guān)技巧,需要的朋友可以參考下2016-02-02
js實現(xiàn)網(wǎng)頁標題欄閃爍提示效果實例分析
這篇文章主要介紹了js實現(xiàn)網(wǎng)頁標題欄閃爍提示效果的方法,以實例形式分析了網(wǎng)上比較常見的實現(xiàn)方法,并對于原理進行分析并加以改進,最后給出了一個具體的應(yīng)用實例供大家參考,需要的朋友可以參考下2014-11-11
antd designable平臺的組件拖拽功能實現(xiàn)代碼
這篇文章主要介紹了antd designable平臺的組件拖拽功能實現(xiàn)代碼,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-07-07

