vue 滚动到顶部时加载更多数据,但保持滚动位置不变
在某些场景中,我们需要类似微信聊天记录那样,当用户向上滚动到顶部时加载更多历史记录,但滚动条位置依然保持在当前位置。
下面提供一种解决方法:
<p class="container" @scroll="handlescroll" ref="chatlistref"> <ul> <li v-for="item in msgs">{{ item }}</li> </ul> </p>
登录后复制
import { createApp, ref, nextTick } from 'vue' createApp({ setup() { const msgs = ref([]) const chatListRef = ref() const scrollToBottom = async () => { const chatListElement = chatListRef.value if (chatListElement) { chatListElement.scrollTop = chatListElement.scrollHeight } } const handleScroll = (ev) => { const target = event.target if (target.scrollTop === 0) { // TODO: 加载更多数据 alert('添加完数据后希望停留在当前数据的位置,而不是最顶部') } } nextTick(() => { scrollToBottom() }) return { msgs, chatListRef, handleScroll } } }).mount('#app')
登录后复制
当向上滚动到顶部时,handlescroll 函数会被触发,此时可以判断 scrolltop 是否为 0,如果是,则加载更多数据并更新 msgs 数组。关键在于,在加载更多数据后,需要调用 scrolltobottom 函数将滚动条位置调整回当前位置。
立即学习“前端免费学习笔记(深入)”;
请注意,你可以根据需要修改 scrolltobottom 函数中的滚动行为。
以上就是Vue中如何实现滚动到顶部加载更多数据且保持滚动位置不变?的详细内容,更多请关注抖狐科技其它相关文章!
-
Win10系统下双核浏览器怎么切换内核
困扰您切换浏览器内核的烦恼?如今,国产浏览器盛行双核模式,却将切换内核按钮隐匿起来。对此,php小编苹果为您揭秘:让您轻松切换内核,访问网站不设限!继续阅读下文,了解详细操作步骤。目前国产双核浏览器都...
-
如何本地引入 Element
引入 element-ui 的 index.css 文件 为了避免依赖于有时可能 недоступный 的远程 url,建议下载 element-ui 的样式文件并将其存储在本地。 步骤:将 ele...
-
《梦境食旅》萌新开荒攻略与氪金指南
新手攻略与氪金秘诀:开启《梦境食旅》的美食冒险《梦境食旅》不仅仅是一款烹饪趣味十足的游戏,更是一场充满惊喜和挑战的心灵之旅。身为一名萌新,你可能正为如何开荒和合理氪金而感到迷茫。别担心!php小编子墨...
-
系统重装怎么删除数据包
通过遵循以下步骤,即可删除系统重装后的数据包:备份重要数据。创建恢复盘或 usb 闪存驱动器。从恢复盘或 usb 闪存驱动器启动计算机。选择“故障排除”。选择“高级选项”。选择“命令提示符”。输入以下...
-
这个周期押注山寨币还有机会吗?
如果你在过去12个月内交易或投资加密市场,你会发现一个共同的主题:山寨币表现的分化。换句话说,市场变得更加成熟,山寨币的数量激增,而购买这些山寨币的资本总量大致保持不变或略有下降。这些因素结合在一起,...