自定义app端、小程序端和H5等多端自定义键盘输入框,跟随系统键盘弹出和隐藏

1.标签代码:

c 复制代码
<textarea class="message-input" :style="'position:fixed;z-index:999;'+(keyboardHeight>=0?'bottom:'+keyboardHeight+'rpx;':'bottom:'+'0rpx')"
                  ref="input"
                  v-model="newPostContent"
                  :auto-focus="keyboardHeight>=0|| messageInput"
                  :placeholder="answerName"
                  confirm-type="search"
                  @keyup.enter="submitMessage"
                  @confirm="submitMessage"
        ></textarea>

2.卸载键盘时取消监听:

c 复制代码
onUnload() {
    // 页面卸载时取消监听
    uni.offKeyboardHeightChange();
  },

3.监听键盘高度:

c 复制代码
// 监听键盘高度变化
    uni.onKeyboardHeightChange(res => {
      this.keyboardHeight = res.height;
      if(this.keyboardHeight > 0){
        this.keyboardHeight -= this.inputContainerHeight; // 加上输入区域自身高度,避免遮挡
      }
      console.log('当前键盘高度:', this.keyboardHeight);
    });

4.全局变量:

c 复制代码
keyboardHeight: 0, // 键盘高度
inputContainerHeight: 200 // 输入区域自身高度,用于给主内容区设置底部padding
newPostContent: '',// 评论内容

5.css

.message-input {

width: 86%;

display: inline-block;

height: 100rpx;

box-shadow: 0 2rpx 10rpx rgb(98, 98, 98,0.3);

background: rgba(255, 255, 255, 0.14);

border-radius: 5px;

padding: 10px;

margin-bottom: 10px;

}

相关推荐
2501_921930834 小时前
ReactNative项目OpenHarmony三方库集成实战:react-native-appearance(更推荐自带的Appearance)
javascript·react native·react.js
还是大剑师兰特5 小时前
Vue3 中 computed(计算属性)完整使用指南
前端·javascript·vue.js
csdn_aspnet5 小时前
查看 vite 与 vue 版本
javascript·vue.js
兆子龙5 小时前
前端工程师转型 AI Agent 工程师:后端能力补全指南
前端·javascript
前端大波5 小时前
Web Vitals 与前端性能监控实战
前端·javascript
2601_952013765 小时前
新麦同城到家预约上门小程序V3全开源版 vueadmin+unipp开源前端+小程序端
小程序
毕设源码-赖学姐6 小时前
【开题答辩全过程】以 基于VUE的环保网站设计为例,包含答辩的问题和答案
前端·javascript·vue.js
小J听不清6 小时前
CSS 字体样式全解析:字体类型 / 大小 / 粗细 / 样式
前端·javascript·css·html·css3
进击的尘埃7 小时前
LangGraph.js 核心机制拆解:从状态管理到完整数据分析 Agent 实战
javascript
进击的尘埃7 小时前
Cursor Rules 配置指南:提示词工程与多模型切换
javascript