亚洲激情欧美色图_国产综合一区二区三区视频一区_五月婷啪啪_手机看久久_成人免费xxxxx在线视频_毛茸茸xxx多毛pics

18842388900

網(wǎng)站建設 APP開發(fā) 小程序

Article/文章

記錄成長點滴 分享您我感悟

您當前位置>首頁 > 知識 > 軟件開發(fā)

小程序如何處理鍵盤覆蓋輸入框(附代碼)

發(fā)表時間:2019-05-20 08:49:58

文章來源:沈陽網(wǎng)站建設

標簽:mpvue javascript 鍵盤 輸入框 小程序

分享:

瀏覽次數(shù):0

本篇文章給大家?guī)淼膬?nèi)容是關于小程序如何處理鍵盤覆蓋輸入框(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

在移動端里, 當輸入框處于頁面比較下方的時候回發(fā)生鍵盤覆蓋輸入框的情況, 在小程序中也發(fā)生了類似情況, 但小程序提供了一些api, 但不能達到需求. 這里來簡單說一下解決思路.

小程序的默認行為

在發(fā)生了鍵盤覆蓋輸入框的時候, 在不操作任何api的情況下, 小程序會把屏幕向上推, 推到輸入框正好在鍵盤上方的位置.

也就是如果不經(jīng)過處理, 小程序的鍵盤是不會覆蓋輸入框的. 但是在我的需求里這樣還不夠, 因為頁面上部分是需要持續(xù)展示的內(nèi)容, 不希望把頁面向上推.

所以下面要通過小程序的api來解決這些問題.

cursor-spacing

在比較正常的UI設計中, 輸入框外面實際都會有一層wrapper, 而很明顯小程序是默認行為是不知道的, 所以結(jié)果是會把這層wrapper的下半部設計軟件

<a href=http://www.www.gfche.com.cn target=_blank class=infotextkey>沈陽<a href=http://www.www.gfche.com.cn target=_blank class=infotextkey>軟件開發(fā)</a></a>,<a href=http://www.www.gfche.com.cn target=_blank class=infotextkey>沈陽<a href=http://www.www.gfche.com.cn target=_blank class=infotextkey>軟件公司</a></a>

分(輸入框以下的)切掉. 那么就非常難看了.

引入這個apicursor-spacing, 設多少, input下面就留多少. 這個數(shù)字應當是'輸入框下邊緣到wrapper結(jié)束的距離".

小程序的坑在于: 文檔上的單位是錯的, 本來就需要試才知道這個屬性的含義是什么, 所以單位錯導致無效果就讓一(大)部分人放棄了. 正確的單位是帶有單位的字符串. 例如10px或者100rpx.

adjust-position

剛才說到我的需求, 我希望頁面不向上推, 而直接把輸入框頂上來.

于是嘗試了這個api. 默認是true, 把他設為false. 效果變成了: 點了輸入框, 鍵盤完美覆蓋輸入框.

于是在加上cursor-spacing, 發(fā)現(xiàn)這兩個api是不能同時生效的.

所以最后結(jié)論是: 單純用提供的api無法實現(xiàn)需求了. 所以只能監(jiān)聽事件自己做.

解決方案

手動操作輸入框思路:

    adjust-position設為false.

    在輸入框的wrapper的bottom樣式綁到本地數(shù)據(jù), 并設為absolute定位.

    在focus事件里改變輸入框的位置.

    在blur事件里復原輸入框的位置.

按照這個思路操作, 遇到了幾個問題:

如何確定輸入框的位置

發(fā)現(xiàn)在bindfocus事件中可以獲得鍵盤的高度, 經(jīng)過嘗試, 鍵盤的高度是以px為單位的. 所以直接把bottom的值設為px高度就行了.

如果輸入框wrapper的相對定位不是頁面底部, 情況就比較復雜, 若是用rpx為單位, 需要獲得屏幕寬高來計算px數(shù), 在不麻煩的情況下可以調(diào)整布局使wrapper相對于頁面底部定位.

在改變style后輸入框立即失去焦點

發(fā)生了這個情況后表現(xiàn)為: 點了輸入框, 輸入框的wrapper閃一下又回原處. (因為失去焦點)

經(jīng)過多次試驗, 需要做的是在綁定一個本地變量到focus屬性.

然后用wx:if根據(jù)是否focus隱藏輸入框, 放一個假的輸入框, 點擊以后使改變focus屬性來喚起鍵盤.

實現(xiàn)的代碼:https://github.com/cwj0417/step/blob/master/src/pages/did/index.vue

以上就是小程序如何處理鍵盤覆蓋輸入框(附代碼)的詳細內(nèi)容,更多請關注沈陽網(wǎng)站建設其它相關文章!

mpvue,javascript,鍵盤,輸入框,小程序

相關案例查看更多

主站蜘蛛池模板: 会泽县| 四会市| 金秀| 长春市| 车险| 木兰县| 蓬莱市| 阳高县| 凌源市| 武胜县| 集安市| 呼图壁县| 德江县| 阿拉善盟| 桦南县| 彰化市| 赤城县| 红河县| 招远市| 余庆县| 阿图什市| 五家渠市| 长岭县| 仁布县| 荥经县| 五华县| 南郑县| 加查县| 汽车| 岱山县| 四子王旗| 宜城市| 双城市| 三明市| 石河子市| 密云县| 介休市| 贵阳市| 眉山市| 桑植县| 炎陵县|