亚洲天堂色av_香蕉黄色一级片_蜜臀av网站_国产足控福利视频一区_久久av伊人_av网址在线

18842388900

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

Article/文章

記錄成長(zhǎng)點(diǎn)滴 分享您我感悟

您當(dāng)前位置>首頁(yè) > 知識(shí) > 軟件開發(fā)

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

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

文章來(lái)源:沈陽(yáng)網(wǎng)站建設(shè)

標(biāo)簽:mpvue javascript 鍵盤 輸入框 小程序

分享:

瀏覽次數(shù):0

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

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

小程序的默認(rèn)行為

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

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

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

cursor-spacing

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

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

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

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

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

adjust-position

剛才說到我的需求, 我希望頁(yè)面不向上推, 而直接把輸入框頂上來(lái).

于是嘗試了這個(gè)api. 默認(rèn)是true, 把他設(shè)為false. 效果變成了: 點(diǎn)了輸入框, 鍵盤完美覆蓋輸入框.

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

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

解決方案

手動(dòng)操作輸入框思路:

    adjust-position設(shè)為false.

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

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

    在blur事件里復(fù)原輸入框的位置.

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

如何確定輸入框的位置

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

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

在改變style后輸入框立即失去焦點(diǎn)

發(fā)生了這個(gè)情況后表現(xiàn)為: 點(diǎn)了輸入框, 輸入框的wrapper閃一下又回原處. (因?yàn)槭ソ裹c(diǎn))

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

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

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

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

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

相關(guān)案例查看更多

主站蜘蛛池模板: 国产男人的天堂 | 婷婷久久综合九色综合绿巨人 | 最好的2019中文大全在线观看 | 亚洲一区二区黄色 | 久久国产色综合 | 欧美成人看片一区二区三区尤物 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 亚洲日本香蕉 | 69国产精品免费视频 | 亚洲久久久久久久 | 国内大量揄拍人妻精品視頻 | 美女扒开尿口给男人看 | 日本不卡网 | 最新中文字幕在线观看视频 | 正在播放一区 | 羞羞答答xxdd成人影院 | 欧美乱熟人妻色情影视 | 亚洲精品在线观看91 | 国产一片姪乱洗澡 | 国产情侣激情呻吟露脸高清短视频 | zooslook欧美另类| 2024你懂的网站无码内射 | 在线中文字幕视频观看 | 一级片久久久久 | 91精品国产色综合久久不卡电影 | 777爽死你无码免费看一二区 | 肌肉男gay网站 | 亚洲日韩欧美一区、二区 | 亚洲AV无码专区色爱天堂老鸭窝 | 亚洲精品一区二区另类图片 | 亚欧中文字幕久久精品无码 | 可以不可以电影完整版在线看 | 日韩一二三区在线 | 精品一区二区三区免费 | 北条麻妃99精品青青久久 | 日本美女作爱视频 | 狠狠躁夜夜躁青青草原 | 日本高清不卡中文字幕 | 一本色道久久综合无码人妻 | 黄色一级无码毛片高清视频 | 免费网站看欧美特级av片 |