当前位置:首页 > 科技  > 软件

突发奇想!Vue3 实现消息无限滚动的新思路!

来源: 责编: 时间:2024-06-20 15:22:38 214观看
导读前言大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心!最近有一个需求,需要在页面中做一个垂直方向的无限滚动,效果基本为如下,这个滚动是一直在持续的,不断循环。这个效果挺有意思

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心!hUz28资讯网——每日最新资讯28at.com

最近有一个需求,需要在页面中做一个垂直方向的无限滚动,效果基本为如下,这个滚动是一直在持续的,不断循环。hUz28资讯网——每日最新资讯28at.com

图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

这个效果挺有意思的,实现起来不难,所以分享一下!hUz28资讯网——每日最新资讯28at.com

实现

基础页面

首先准备一下基础的页面,之所以给容器设置 overflow:hidden 是为了把滚动条给去掉,因为我们并不需要滚动条。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

可以看出有些项是不在容器可视范围内的,且每一项的高度是 22px(每一项的高度可以自己定,我这里就用 22px 来进行示范)。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

滚动起来

接下来得让这个容器滚动起来,那要怎么滚动呢?可以使用 scrollTo 这个方法来进行滚动~并且为了持续保持滚动,可以使用 requestAnimationFrame 来不断进行。hUz28资讯网——每日最新资讯28at.com

每次都对 top 进行递增,保证容器不断向上滚动。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

但是我们可以看到,虽然top 一直在递增,但是滚动到最后就不动了!这是因为这个时候已经滚动到最底部了,那么自然就滚动不了了。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

永远滚动不完?

上面为啥滚到底部就滚不动了呢?因为到最底部了,所以滚不动了呀!hUz28资讯网——每日最新资讯28at.com

那么想要永远滚不完应该怎么办呢?其实有一种办法,那就是永远到不了底,那要怎么实现呢?其实很简单,只要让数据不断增加就行!hUz28资讯网——每日最新资讯28at.com

怎么让数据不断增加呢,并且增加的规则是什么呢?其实很简单,我们每次滚上去一项,就拷贝这一项push 到列表数据末端,这样就能做到数据永远滚不完!hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

下面是代码实现,为什么是除以22 呢?因为每一项的高度是 22px。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

现在可以达到想要的无限滚动效果。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

数据不断增长?

但是其实上面的做法还是有缺点的,因为数据不断地push也就是不断地增加,如果页面保持一段时间的话,会大大占用内存,导致页面卡顿!!hUz28资讯网——每日最新资讯28at.com

所以我们可以在适当的时间点,去初始化数据,也就是把数据恢复到一开始样子,这样就能避免数据不断增加了!hUz28资讯网——每日最新资讯28at.com

那么应该在什么时机去初始化数据呢?并且要怎么初始化才能让用户察觉不出来呢?怎么做到无缝衔接进行初始化呢?hUz28资讯网——每日最新资讯28at.com

通过一个图告诉大家~其实最好的时机就是在刚好滚动完一轮的时候。hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

最终代码实现如下:hUz28资讯网——每日最新资讯28at.com

图片图片hUz28资讯网——每日最新资讯28at.com

hUz28资讯网——每日最新资讯28at.com

最终实现效果:hUz28资讯网——每日最新资讯28at.com

图片 图片 hUz28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-95162-0.html突发奇想!Vue3 实现消息无限滚动的新思路!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 快速学习一个算法,Vision Transformer

下一篇: Apereo CAS SSO单点系统的 OAuth2/OpenID Connect集成问题

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 跑分安卓第一!Redmi K60至尊版8月发布!卢伟冰:目标年度性能之王

    8月5日消息,Redmi K60至尊版将于8月发布,在此前举行的战略发布会上,官方该机将搭载搭载天玑9200+处理器,安兔兔V10跑分超177万分,是目前安卓阵营最高的分数
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 华为HarmonyOS 4.0将于8月4日发布 或搭载AI大模型技术

    华为宣布HarmonyOS4.0将于8月4日正式发布。此前,华为已经针对开发者公布了HarmonyOS4.0,以便于开发者提前进行适配,也因此被曝光出了一些新系统的特性
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
Top