diff --git a/src/components/message/MessageItem.vue b/src/components/message/MessageItem.vue index 4de6617..821ba0a 100644 --- a/src/components/message/MessageItem.vue +++ b/src/components/message/MessageItem.vue @@ -166,7 +166,7 @@ const onShowUserCard = () => { .load-more-wrapper { width: 100%; height: 30px; - margin-bottom: 10px; + padding: 10px; position: relative; display: flex; justify-content: center; diff --git a/src/views/message/MessageLayout.vue b/src/views/message/MessageLayout.vue index 2cd3af6..69a190b 100644 --- a/src/views/message/MessageLayout.vue +++ b/src/views/message/MessageLayout.vue @@ -81,7 +81,10 @@ onMounted(async () => { const handleMsgListScroll = async () => { if (msgListDiv.value.scrollTop === 0) { + let loadMoreHeight = 0 if (messageData.msgRecordsList[userData.curSessionId]?.length === capacity.value) { + // 拉取消息之后,"加载更多"的提示会消失,它的高度也会消失,因此需要修正一下高度 + loadMoreHeight = document.querySelector('.load-more-wrapper').clientHeight await pullMsg(1, msgRecords.value[0].msgId) } @@ -96,7 +99,7 @@ const handleMsgListScroll = async () => { } // 保持页面对话的锚定位置 - const scrollHeight = msgListDiv.value.scrollHeight + const scrollHeight = msgListDiv.value.scrollHeight + loadMoreHeight nextTick(() => { msgListDiv.value.scrollTop = msgListDiv.value.scrollHeight - scrollHeight });