自定义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;

}

相关推荐
Mr Xu_6 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠6 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
sleeppingfrog7 小时前
zebra通过zpl语言实现中文打印(二)
javascript
未来之窗软件服务8 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
baidu_247438618 小时前
Android ViewModel定时任务
android·开发语言·javascript
VT.馒头8 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
有位神秘人9 小时前
Android中Notification的使用详解
android·java·javascript
phltxy9 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070710 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js
Mr Xu_11 小时前
告别硬编码:前端项目中配置驱动的实战优化指南
前端·javascript·数据结构