这是我的一个底部输入框的样式,预想的效果是在激活后弹出软键盘,输入框跟着被挤上来。
但是每次点击后软件盘瞬间弹出,这个输入框要等大概0.5秒后才会到达预定的高度
看了下是@focus
触发本身就比软键盘弹出慢,这是为什么?
<view>
<view :class="focus ? 'shade' : ''" @click="focus = false"></view>
<view class="cu-bar input custom-input-bar solid-top" :style="{ bottom: `${keyboardHeight}px` }">
<view class="textarea-container">
<textarea
v-model.trim="input"
auto-height
fixed
:show-confirm-bar="false"
:adjust-position="false"
:placeholder="placeholder"
maxlength="300"
:focus="focus"
@focus="onFocus"
@blur="onBlur" />
</view>
<button class="cu-btn bg-green shadow-blur" @click="onSubmit" :disabled="isLoading">发送</button>
</view>
</view>
onFocus(e) { this.keyboardHeight = e.detail.height },
2 个回复
y***@gmail.com
在input和textarea上加一个 @tap ,里面写的跟 @focus 一样,解决,H5没问题,打包到app总也有延迟,坑一个接一个,希望uniapp尽快改进
DCMarvel
个人猜测,键盘都没出来呢怎么知道键盘高度呢...估计还要用原生
y***@gmail.com
不是,键盘早就弹出来了,但延迟执行导致UI上的其他内容反应慢一拍
2021-06-24 09:08