使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY不一致
![2***@qq.com](https://img-cdn-tc.dcloud.net.cn/account/identicon/1544adb673f4a49564ec4226fefdbb94.png)
- 发布:2023-11-06 15:06
- 更新:2023-11-06 15:06
- 阅读:218
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 3.4.18
HBuilderX类型: 正式
HBuilderX版本号: 3.95
第三方开发者工具版本号: 1.06.2209070
基础库版本号: 12.13.6
项目创建方式: HBuilderX
操作步骤:
预期结果:
使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY应该是同样的
使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY应该是同样的
实际结果:
使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY与之前的不一致
使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY与之前的不一致
bug描述:
使用scroll-view开发聊天窗口功能,发送的消息是同样的高度,但是再发送出来的内容高度,大于scroll-view获取的高度的时候,@scroll返回的deltaY不一致
let element = '.chat-item'
let query = uni.createSelectorQuery()
query.in(instance).selectAll(element).boundingClientRect()
query.exec(eles => {
if (Array.isArray(eles) && eles[0].length > 0) {
console.log(eles[0])
if(openStatus.value) {
// 初始化
scrollTop.value = 35
eles[0].forEach(item => {
scrollTop.value += item.height
})
openStatus.value = false
} else {
scrollTop.value += eles[0][eles[0].length - 1].height
console.log('自动滚动到底部')
}
console.log(scrollTop.value)
}
})
上述是获取内容的高度,通过高度来改变scrollTop属性,来进行滚动的控制
let scrollElement = '.scroll-container'
let scrollQuery = uni.createSelectorQuery()
scrollQuery.in(instance).selectAll(scrollElement).boundingClientRect()
scrollQuery.exec(eles => {
console.log('scroll-view高度===============',eles[0][0].height, scrollHeight.value)
})
上述是获取scroll-view的高度,获取到的高度是607,当内容scrollTop的大小超过scroll-view的高度607的时候,会导致@scroll返回的deltaY减少,请问这有什么方法可以解决吗?我尝试过动态增加scroll-view的高度,但是这样的效果并没有成功。
0 个回复