showLast(duration = 300) {
// #ifndef APP-NVUE
this.scrollIntoView = 'uni-im-list-last-item'
this.$nextTick(() => {
this.scrollIntoView = ''
})
// #endif
// #ifdef APP-NVUE
if (this.msgList.length) {
setTimeout(() => {
this.$nextTick(() => {
// let target = this.$refs['uni-im-list'].$refs['uni-im-list-last-item'];
let target = this.$refs['uni-im-list-item'][this.msgList.length - 1];
// console.log('chat ----- showLast', target);
nativePluginDom.scrollToElement(target, {
animated: duration != 0,
offset: 0
});
})
}, 100)
} else {
console.log('chat ----- need not showLast!');
}
// #endif
},

- 发布:2024-03-26 11:33
- 更新:2024-03-26 11:33
- 阅读:162
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 22000.1696
HBuilderX类型: 正式
HBuilderX版本号: 3.99
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: iphone 8
页面类型: nvue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
进入含有list组件的nvue界面后,点击输入框,键盘出现页面先被弹起并定位到最后一条消息,再次点击输入框收起键盘不再回滚
进入含有list组件的nvue界面后,点击输入框,键盘出现页面先被弹起并定位到最后一条消息,再次点击输入框收起键盘不再回滚
预期结果:
收起键盘后页面正常回滚键盘收起
收起键盘后页面正常回滚键盘收起
实际结果:
收起键盘后页面不再回滚
收起键盘后页面不再回滚
bug描述:
uni-im聊天页面的滚动到底部方法showlast(),在进入存在list组件的nvue页面后,会导致scrollToElement方法不生效。
进入含有list组件的nvue界面后,点击输入框键盘会把页面弹起并滚动到最后一条聊天记录的位置,再次点击输入框把键盘收起后页面却无法回滚仍然卡在上次滚动的位置(消息记录不满一页时会导致页面异常)