老哥 这问题解决了吗
textarea获取焦点后为什么会自动失去焦点?代码如下: html代码: <view class="chat-box" style="{{keyboardHeight != 0 ? 'bottom:' + keyboardHeight + 'px;' : ''}}" bindtap="keyboardClick"> <textarea auto-height class="chat-input" show-confirm-bar="{{false}}" bindfocus="focusInput" bindblur="bindblur" adjust-position="{{false}}" maxlength="70" value="{{textAreaValue}}" bindinput="bindTextarea" placeholder="请输入短信内容" /> <text class="chat_box_num">{{textAreaValue.length}}/70</text> <view class="sendMsg" bindtap="sendSms"> 发送 </view> </view> css代码: .chat-box { position: fixed; left: 0; width: calc(100% - 10rpx); bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/ bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/ background: #FFFFFF; padding: 11rpx 25rpx; display: flex; align-items: center; } .chat_box_num { position: absolute; right: 88px; bottom: 10px; color: #9a9a9a; font-size: 24rpx; } .chat-input { /*width: calc(580rpx - 10rpx - 12rpx);*/ /*margin-right: 10rpx;*/ /*overflow: scroll;*/ /*background: #F4F4F4;*/ /*border-radius: 8rpx;*/ /*padding: 11rpx 24rpx;*/ width: calc(580rpx - 10rpx - 12rpx); margin-right: 10rpx; overflow: scroll; background: #F4F4F4; border-radius: 8rpx; padding: 11rpx 24rpx 40rpx; min-height: 44rpx!important; } .sendMsg { padding: 12rpx 21rpx; background: #007AFF; border-radius: 6rpx; border: 1rpx solid rgba(5, 5, 5, 0.08); font-size: 27rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #FFFFFF; text-align: center; } js代码: focusInput(e) { console.log('获取键盘', e) setTimeout(() => { if (!this.data.keyboardStatus) { return } this.setData({ keyboardHeight: e.detail.height }) }, 100) }, bindblur(e) { console.log('失去焦点', e) this.setData({ keyboardHeight: 0 }) } 出现问题的手机型号: ios 13,软件版本: 15.5 微信版本号: 8.0.23
07-31老哥问题解决了吗
组件里 textarea 调高位置,导致键盘弹出又收起,如何解决呢?我有两个功能用了 textarea,键盘弹出时要修改元素高度,让 textarea 上移到键盘上方,不遮挡文本框。 现在遇到了问题,当选中文本框,键盘弹出就立马又消失了,问了 GPT,说是调高元素高度导致重新渲染,键盘又失去了焦点然后收起。AI 提供的方案都没能解决问题。大家有遇到这种情况,怎么解决的呢? 使用的是 mp-half-screen-dialog 组件 文本框在 slot="desc" 里面,使用 <view style="height:{{ modifyDialogHeight + 'rpx' }}"></view> 这种方式来加一个高度,让文本框显示在键盘上方。 modifyDialogHeight 来自 bindkeyboardheightchange="handleKeyboard"
07-31