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

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

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

前言

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

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

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

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

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

实现

基础页面

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

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

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

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

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

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

滚动起来

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

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

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

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

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

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

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

永远滚动不完?

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

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

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

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

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

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

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

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

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

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

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

数据不断增长?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页“充值中心”入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top