一、现象
在真机中,当光标作用信息发送框唤起软键盘时,键盘会把输入框盖住一大半。如图:
唤起前: 唤起后:
二、解决
1、输入框设置adjust-position=“false”属性(adjust-position为表单组件键盘弹起时,是否自动上推页面)
2、当输入框获得焦点时,获取软键盘的高度
3、给输入框设置与底部的距离为软键盘的高度
4、当输入框失去焦点时,重新设置输入框与底部的默认值
5、完成
输入框html代码如:
1 2 3 4 5 6 7 8 9 10 | < view class="chat_footer" :style="{ bottom: keyboardHeight }"> < textarea v-model="formData.message" :fixed="true" adjust-position="false" @focus="onFocus" @blur="onBlur" placeholder="请输入"/> < button type="primary" size="mini">发送</ button > </ view > |
作用输入框的脚本方法如:
methods: { // 当输入框获得焦点时 onFocus (e) { // 如果存在软键盘的高度 e.target.height && (this.keyboardHeight = e.target.height + 'px') }, // 当输入框失去光标时 onBlur () { this.keyboardHeight = 0 } }
基础样式如:
.chat_footer { position: fixed; bottom: 0; }
效果为:
三、总结
这操作方法在单个输入框进行发送信息时会常用到。
TIPS:
延伸问题点:当输入框获得焦点或是发送了信息后。因信息是追回到页面底部的,从而需要页面得往上滚动到底部,这样的交互就会更舒服一点。如以下代码:
<scroll-view class="chat_body" :scroll-top="scrollTop" scroll-y="true"> // 这里是所发表的信息列表 </scroll-view>
data () { return { scrollTop: 9999 } }, methods: { // 当输入框获得焦点时 onFocus (e) { this.$set(this, 'scrollTop', this.scrollTop + 1) } }
tips: onFocus 和主文的输入框同一方法
记录时间的美好~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具