日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

突發奇想!Vue3 實現消息無限滾動的新思路!

來源: 責編: 時間:2024-06-20 15:22:38 147觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心!最近有一個需求,需要在頁面中做一個垂直方向的無限滾動,效果基本為如下,這個滾動是一直在持續的,不斷循環。這個效果挺有意思

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心!haJ28資訊網——每日最新資訊28at.com

最近有一個需求,需要在頁面中做一個垂直方向的無限滾動,效果基本為如下,這個滾動是一直在持續的,不斷循環。haJ28資訊網——每日最新資訊28at.com

圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

這個效果挺有意思的,實現起來不難,所以分享一下!haJ28資訊網——每日最新資訊28at.com

實現

基礎頁面

首先準備一下基礎的頁面,之所以給容器設置 overflow:hidden 是為了把滾動條給去掉,因為我們并不需要滾動條。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

可以看出有些項是不在容器可視范圍內的,且每一項的高度是 22px(每一項的高度可以自己定,我這里就用 22px 來進行示范)。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

滾動起來

接下來得讓這個容器滾動起來,那要怎么滾動呢?可以使用 scrollTo 這個方法來進行滾動~并且為了持續保持滾動,可以使用 requestAnimationFrame 來不斷進行。haJ28資訊網——每日最新資訊28at.com

每次都對 top 進行遞增,保證容器不斷向上滾動。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

但是我們可以看到,雖然top 一直在遞增,但是滾動到最后就不動了!這是因為這個時候已經滾動到最底部了,那么自然就滾動不了了。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

永遠滾動不完?

上面為啥滾到底部就滾不動了呢?因為到最底部了,所以滾不動了呀!haJ28資訊網——每日最新資訊28at.com

那么想要永遠滾不完應該怎么辦呢?其實有一種辦法,那就是永遠到不了底,那要怎么實現呢?其實很簡單,只要讓數據不斷增加就行!haJ28資訊網——每日最新資訊28at.com

怎么讓數據不斷增加呢,并且增加的規則是什么呢?其實很簡單,我們每次滾上去一項,就拷貝這一項push 到列表數據末端,這樣就能做到數據永遠滾不完!haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

下面是代碼實現,為什么是除以22 呢?因為每一項的高度是 22px。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

現在可以達到想要的無限滾動效果。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

數據不斷增長?

但是其實上面的做法還是有缺點的,因為數據不斷地push也就是不斷地增加,如果頁面保持一段時間的話,會大大占用內存,導致頁面卡頓??!haJ28資訊網——每日最新資訊28at.com

所以我們可以在適當的時間點,去初始化數據,也就是把數據恢復到一開始樣子,這樣就能避免數據不斷增加了!haJ28資訊網——每日最新資訊28at.com

那么應該在什么時機去初始化數據呢?并且要怎么初始化才能讓用戶察覺不出來呢?怎么做到無縫銜接進行初始化呢?haJ28資訊網——每日最新資訊28at.com

通過一個圖告訴大家~其實最好的時機就是在剛好滾動完一輪的時候。haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

最終代碼實現如下:haJ28資訊網——每日最新資訊28at.com

圖片圖片haJ28資訊網——每日最新資訊28at.com

haJ28資訊網——每日最新資訊28at.com

最終實現效果:haJ28資訊網——每日最新資訊28at.com

圖片 圖片 haJ28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-95162-0.html突發奇想!Vue3 實現消息無限滾動的新思路!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 快速學習一個算法,Vision Transformer

下一篇: Apereo CAS SSO單點系統的 OAuth2/OpenID Connect集成問題

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始?!肮家粋€好消息2023年#小米電視上半年出貨量中國
  • K6:面向開發人員的現代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設計為功能強大、可擴展且易于使用。k6 可用于測試各種應用程序,包括 Web
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 三言兩語說透設計模式的藝術-單例模式

    寫在前面單例模式是一種常用的軟件設計模式,它所創建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統中的其他對象共享,從而減少
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度?! RM軟件市場規模如今超過580
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
  • 質感不錯!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機型都保持著較為均衡的產品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
Top 主站蜘蛛池模板: 麻阳| 桐乡市| 云南省| 虞城县| 沭阳县| 缙云县| 瑞昌市| 乡宁县| 新和县| 楚雄市| 文水县| 临武县| 澎湖县| 高密市| 渝北区| 尉氏县| 炉霍县| 南京市| 石门县| 双流县| 额敏县| 辽阳县| 岱山县| 龙泉市| 鸡西市| 怀宁县| 徐州市| 屏东市| 铜梁县| 枝江市| 东乡县| 财经| 临潭县| 尖扎县| 溧阳市| 丰台区| 铜鼓县| 大悟县| 黄陵县| 河曲县| 格尔木市|