微信小程序清空輸入框信息與實(shí)現(xiàn)屏幕往上滾動(dòng)的示例代碼
微信小程序,是屬于小程序的一種,英文名為Wechat Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。微信小程序也是基于H5,JS的開發(fā)。

一. 清空輸入框信息(重置輸入框信息恢復(fù)默認(rèn)值)
這是我在微信小程序?qū)嵱?xùn)開發(fā)的過程中出現(xiàn)的問題,多次思考后終于解決了輸入框內(nèi)已發(fā)送的消息無法被清空這個(gè)問題。從另一個(gè)角度說可以把清空輸入框信息理解為重置輸入框信息恢復(fù)初始默認(rèn)值。以下是我的解決方案,希望對(duì)你們有所幫助。
首先,當(dāng)用戶從輸入框輸入信息后,就會(huì)點(diǎn)擊發(fā)送按鈕進(jìn)行發(fā)送信息,然后表單對(duì)輸入框內(nèi)發(fā)送的消息進(jìn)行重置恢復(fù)初始默認(rèn)值,方便用戶下一條消息的編輯和發(fā)送。
具體思路如下:

直接上代碼如下:
WXML代碼:
<form> <view class="form"> <!--綁定數(shù)據(jù)--> <input class="input" auto-focus placeholder="請(qǐng)輸入內(nèi)容" bindinput="bindInputData" /> <!--發(fā)送信息并初始化值--> <button class="button" type="primary" form-type="reset" bindtap="sendMsg">發(fā)送</button> </view> </form>
form-type=“reset”,reset屬性的作用是重置,可把表單中的元素重置為它們的默認(rèn)值。
type=“primary”,type屬性的作用是用于控制按鈕的顏色樣式。在微信小程序中,primary屬性默認(rèn)為綠色。
注:form-type="reset"只能應(yīng)用到form標(biāo)簽當(dāng)中,view標(biāo)簽中無效,如果去掉form標(biāo)簽,reset將失去作用。
JS代碼:
//用戶信息
userInfo:{},
inputvalue:''
},
//綁定數(shù)據(jù)
bindInputData:function(e){
this.setData({
inputvalue:e.detail.value
});
},
//發(fā)送數(shù)據(jù)
sendMsg:function(){
if(this.data.inputvalue == ''){
wx.showToast({
title: '消息不能為空~~~',
duration: 2000
})
return ;
}
},
關(guān)于showToast的詳細(xì)內(nèi)容請(qǐng)見wx.showToast(Object object),它的作用是顯示消息提示框。
WXSS代碼:
.form{/*輸入框整體*/
width: 100vw;
height: 16vw;
border-top: 1px solid #aaa;
background-color: #f1f1f1;
position: fixed;/*固定定位*/
bottom: 0;/*底端距離為0*/
display: flex;
align-items: center;
z-index: 20;
}
.input{/*輸入框*/
width: 285px;
height: 36px;
background-color: #fff;
border-radius: 20px;
margin-left: 1vw;
padding: 0 10px;/*上下內(nèi)邊距*/
font-size: 28rpx;
color: #444;
}
.button{/*發(fā)送按鈕*/
width: 70px !important;/*按鈕,提升權(quán)重*/
height: 40px;
padding: 8px 0;
margin-right: 4px;
}
實(shí)現(xiàn)效果:

二. 實(shí)現(xiàn)屏幕自動(dòng)往上滾動(dòng)
我在做項(xiàng)目的過程中發(fā)現(xiàn)用戶發(fā)送的消息會(huì)被信息輸入框遮擋,而且還需要手動(dòng)滑動(dòng)顯示屏幕才能看到用戶所發(fā)的消息。所以想到以下方法解決這個(gè)問題。
實(shí)現(xiàn)顯示屏幕隨著消息的發(fā)送自動(dòng)往上滾動(dòng),并且使輸入框不會(huì)遮擋住所有用戶發(fā)送的消息。
直接上代碼如下:
JS代碼:
// 將屏幕往上滾動(dòng),將屏幕底端的顯示內(nèi)容顯示出來
wx.pageScrollTo({
scrollTop: 1000000000,
duration: 300
})
關(guān)于pageScrollTo的詳細(xì)內(nèi)容請(qǐng)見wx.pageScrollTo(Object object),它的作用將頁面滾動(dòng)到目標(biāo)位置,支持選擇器和滾動(dòng)距離兩種方式定位。
如何解決信息輸入框遮擋了顯示屏幕上的其他用戶對(duì)話信息內(nèi)容?
具體思路如下:
在之前的內(nèi)容里,信息輸入框中js代碼用position: fixed將信息輸入框進(jìn)行固定定位,bottom: 0將輸入框與底端的距離設(shè)置為0。所以我們可以在顯示屏幕底端又加入一個(gè)板塊,然后將這個(gè)板塊隱藏在信息輸入框下(信息輸入框?qū)鍓K覆蓋,不會(huì)影響美觀),在js代碼里添加板塊的高度,寫入與信息輸入框一樣的高度,將顯示屏幕頂?shù)叫畔⑤斎肟虻纳戏?,就不?huì)出現(xiàn)信息輸入框會(huì)遮擋顯示屏幕內(nèi)容這個(gè)問題。
直接上代碼如下:
WXML代碼:
<view class="block"> <text>隱藏塊</text> </view>
WXSS代碼:
.block{/*隱藏塊*/
width: 100vw;
height: 16vw;
margin-top: 56vw;
border-top: 1px solid #aaa;
background-color: #f1f1f1;
}
——>以上內(nèi)容分別是關(guān)于如何解決用戶點(diǎn)擊發(fā)送消息后如何將信息輸入框內(nèi)的數(shù)據(jù)初始化,恢復(fù)默認(rèn)值和如何將顯示屏幕隨著用戶消息的發(fā)送自動(dòng)往上滾動(dòng),輸入框不會(huì)遮擋顯示屏幕上的其他用戶對(duì)話信息內(nèi)容這兩個(gè)問題。在第一個(gè)問題里用form里的reset屬性解決比較方便,也可以嘗試在js里寫個(gè)function函數(shù)將信息輸入框里的數(shù)據(jù)進(jìn)行初始化。第二個(gè)問題里用pageScrollTo方法實(shí)現(xiàn)屏幕自動(dòng)向上滾動(dòng)和用板塊的辦法將顯示屏幕頂?shù)叫畔⑤斎肟虻纳戏健?/p>
總結(jié)
到此這篇關(guān)于微信小程序清空輸入框信息與實(shí)現(xiàn)屏幕往上滾動(dòng)的示例代碼的文章就介紹到這了,更多相關(guān)微信小程序清空輸入框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS 參數(shù)傳遞的實(shí)際應(yīng)用代碼分析
在項(xiàng)目中,有一個(gè)Ajax加載的區(qū)域,是一個(gè)Div標(biāo)簽,id為msg_box,這個(gè)控制鏈接包含在一個(gè)左側(cè)的導(dǎo)航中,當(dāng)從其他頁面鏈接到這個(gè)頁面時(shí),該JS代碼就失效了。2009-09-09
extjs4圖表繪制之折線圖實(shí)現(xiàn)方法分析
這篇文章主要介紹了extjs4圖表繪制之折線圖實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了extjs4繪制折線圖的相關(guān)操作技巧、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03
微信小程序?qū)崿F(xiàn)搜索指定景點(diǎn)周邊美食、酒店
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)搜索指定景點(diǎn)周邊美食、酒店的功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
JavaScript 中級(jí)筆記 第五章 面向?qū)ο蟮幕A(chǔ)
對(duì)象是JavaScript的基礎(chǔ)。從最基本的層次上說,對(duì)象是一系列屬性的集合。2009-09-09
BootStrap 下拉菜單點(diǎn)擊之后不會(huì)出現(xiàn)下拉菜單(下拉菜單不彈出)的解決方案
最近學(xué)到Bootstrap下拉菜單,學(xué)懂了教程內(nèi)容之后自己敲一個(gè)點(diǎn)擊按鈕底下彈出下拉菜單的小demo,寫完代碼發(fā)現(xiàn)運(yùn)行之后點(diǎn)擊按鈕沒反應(yīng),下拉菜單彈不出來,下面給大家分享下解決方案2016-12-12
js實(shí)現(xiàn)一個(gè)猜數(shù)字游戲
本文主要介紹了js實(shí)現(xiàn)一個(gè)猜數(shù)字游戲的實(shí)例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-03-03

