小程序ios软键盘弹起挡住input输入框

这是再写一个项目时偶然发现的一个小bug

要求我在点开页面的时候自动弹起键盘,我使用了input组件内的cursor-spacing属性,但是发现在ios上会出现错位的bug,后面我就使用了onKeyboardHeightChange这个方法,微信原生的应该也一样可以使用的

在input的父组件上给一个相对定位或者fixed定位,动态的去赋值bottom内的值,ios需要-1px,注意:在input输入框内要加上:adjust-position="false"键盘弹起时,是否自动上推页面,这样就能解决这个问题了

<div :style="{bottom:inputHeight - 1 +'px'}">
	<input type="text" placeholder="你得说点什么.." :focus="focus" :adjust-position="false"/>
</div>

补充,在写项目时,又遇到了这个bug,回来看了一下自己写的文章,发现好像自己都看不懂,现在来更新一下。具体的还是那样操作,我们要在data内写上一个inputHeight: null

在methods内写上

uni.offKeyboardHeightChange();
uni.onKeyboardHeightChange(res => { //监听键盘高度变化
	this.inputHeight = res.height; //res.height就是键盘的高度
})

如果在安卓上,他会出现一个,当键盘收起时,inputheight并没有改变里面的值,所以我们要给input一个失去焦点的事件,当输入框失去焦点时,inputheight重新设置为0 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值