这是再写一个项目时偶然发现的一个小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