react 的過渡動畫

一、React的過渡動畫

1、react-transition-group

在開發中,我們想要給一個組件的顯示和消失,添加某種過渡動畫,可以很好的增加用戶體驗,

React社區為我們提供了react-transition-group用來完成過渡動畫,

React曾為開發者提供過動畫插件react-addons-css-transition-group,后由社區維護,形成了現在的 react-transition-group

這個庫可以幫助我們方便的實現,組件的 入場 和 離場 動畫,
使用時需要進行額外的安裝,如下:npm install react-transition-group --save

2、主要組件

  • Transition:該組件是一個和平臺無關的組件(不一定要結合CSS)
    在前端開發中,一般是結合CSS來完成樣式,所以比較常用的是CSSTransition

  • CSSTransition:在前端開發中,通常使用 CSSTransition 來完成過渡動畫效果
    如果只有一個組件,直接使用這個即可

  • SwitchTransition:兩個組件顯示和隱藏切換時,使用該組件

  • TransitionGroup:將多個動畫組件包裹在其中,一般用于列表中元素的動畫

CSSTransition

CSSTransition 是基于 Transition組件構建的,

  • CSSTransition執行過程中,有三個狀態:appearenterexit
    這三種狀態,需要定義對應的CSS樣式:
    第一類,開始狀態:對應的類是 -appear、-enter、-exit
    第二類:執行動畫:對應的類是 -appear-active、-enter-active、-exit-active
    第三類:執行結束:對應的類是 -appear-done、-enter-done、-exit-done;

  • 常見屬性如下:

  1. in:觸發進入或者退出狀態
0、如果添加了 unmountOnExit={true} ,那么,該組件會在執行退出動畫結束后被移除掉;1、當intrue時,觸發進入狀態,會添加 -enter、-enter-acitve 的class,開始執行動畫當動畫執行結束后,會移除兩個class,并且添加 -enter-done 的class2、當infalse時,觸發退出狀態,會添加 -exit、-exit-active 的class,開始執行動畫當動畫執行結束后,會移除兩個class,并且添加 -enter-done 的clas
  1. classNames:動畫class的名稱
決定了在編寫css時,對應的class名稱:
比如,`card-enter、card-enter-active、card-enter-done`
  1. unmountOnExit:退出后卸載組件

  2. appear:是否在初次進入添加動畫(需要和 in同時為true)

  3. timeout:過渡動畫的時間

  4. 對應的鉤子函數,為了在動畫的執行過程,來完成一些JavaScript的操作

`onEnter`:在進入動畫之前,被觸發`onEntering`:在應用進入動畫時,被觸發`onEntered`:在應用進入動畫結束后,被觸發`onExit`:離開動畫之前,被觸發`onExiting`:離開動畫時,被觸發`onExited`:離開動畫之后,被觸發

CSSTransition的示例

下班了,明天再接著寫

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88167.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88167.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88167.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習:PyTorch人工神經網絡優化方法分享(1)

本文目錄: 一、從梯度角度入手(一)梯度下降算法回顧(二)常用優化算法1.SGD(Stochastic Gradient Descent)- 隨機梯度下降2.BGD (Batch Gradient Descent) - 批量梯度下降3.MBGD (Mini-Batch Gra…

(三)yolov5——模型訓練

一、準備數據 先準備一個MP4的視頻 1.測試一幀 使用opencv來提取每一個視頻的幀 先使用以下代碼查看一幀的內容,是否符合預期 import cv2 import matplotlib.pyplot as plt# 打開視頻文件 video cv2.VideoCapture("111.mp4") # 讀取一幀 ret, frame…

008 Linux 開發工具(下) —— make、Makefile、git和gdb

🦄 個人主頁: 小米里的大麥-CSDN博客 🎏 所屬專欄: Linux_小米里的大麥的博客-CSDN博客 🎁 GitHub主頁: 小米里的大麥的 GitHub ?? 操作環境: Visual Studio 2022 文章目錄 Linux 開發工具(下)Linux 項目自動化構建工…

前綴和題目:連續的子數組和

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法思路和算法代碼復雜度分析 題目 標題和出處 標題:連續的子數組和 出處:523. 連續的子數組和 難度 5 級 題目描述 要求 給定一個整數數組 nums \texttt{nums} nums 和一個整數 k \tex…

隊的簡單介紹

隊列:只允許在一端進行插入數據操作,在另一端進行刪除數據操作的特殊線性表,隊列具有先進先出 FIFO(First In First Out)的特點。 入隊列:進行插入操作的一端稱為隊尾。 出隊列:進行刪除操作的一端稱為隊頭。 入隊列…

AI-Sphere-Butler之如何將豆包桌面版對接到AI全能管家~新玩法(一)

環境: AI-Sphere-Butler VBCABLE2.1.58 Win10專業版 豆包桌面版1.47.4 ubuntu22.04 英偉達4070ti 12G python3.10 問題描述: AI-Sphere-Butler之如何將豆包桌面版對接到AI全能管家~新玩法(一) 聊天視頻: AI真…

【STM32】啟動流程

1、.s啟動文件解析 STM32的啟動文件(一般是.s匯編文件,如startup_stm32f407xx.s)是STM32上電后執行的第一段代碼,承擔著“系統初始化化引導員”的角色。 它的主要作用是設置初始化棧指針(SP)、程序計數器&…

【vim】通過vim編輯器打開、修改、退出配置文件

通過vim編輯器打開任一配置文件 vim /etc/profile 英文輸入下,按i鍵進入INSERT模式,修改配置文件 完成修改后,按esc鍵退出INSERT模式 英文輸入下,輸入":wq!",即可保存并退出 :q #不保存并退出 :q! …

Effective Modern C++ 條款6:當 auto 推導類型不符合預期時,使用顯式類型初始化慣用法

在C開發中,auto關鍵字以其簡潔性和高效性被廣泛使用。然而,“自動推導”并非萬能,尤其在某些特殊場景下,auto的推導結果可能與開發者預期不符,甚至導致未定義行為。今天,我們以《Effective Modern C》條款6…

學習Linux進程凍結技術

原文:蝸窩科技Linux進程凍結技術 功耗中經常需要用到,但是linux這塊了解甚少,看到這個文章還蠻適合我閱讀的 1 什么是進程凍結 進程凍結技術(freezing of tasks)是指在系統hibernate或者suspend的時候,將…

GitHub 趨勢日報 (2025年06月22日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖 624 LLMs-from-scratch 523 ai-engineering-hub 501 n8n 320 data-engineer-handb…

kotlin中為什么新增擴展函數功能?

在 Kotlin 中,擴展函數的本質是「不修改原有類代碼,為其新增功能」,這源自編程中「開閉原則」(對擴展開放,對修改關閉)的第一性原理。 核心需求:當需要給第三方庫的類(如 Android 的…

excel 數據透視表介紹

Excel 數據透視表(PivotTable)就是你的數據分析神器!它能幫你快速匯總、分類、比較和分析 大量數據,從看似雜亂無章的表格中一鍵提取關鍵信息 ,生成交互式的匯總報告。無需復雜公式,只需拖拽幾下,就能讓數據“開口說話”&#xff…

半導體行業中的專用標準產品ASSP是什么?

半導體行業中的專用標準產品ASSP是什么? “專用標準產品”(ASSP - Application Specific Standard Product)是半導體集成電路中的一個重要分類。 你可以把它理解為介于通用標準產品和全定制ASIC之間的一種芯片。以下是它的核心定義和特點&a…

秋招Day14 - MySQL - 鎖

MySQL中有幾種類型的鎖? 鎖粒度來分,有表鎖、頁鎖和行鎖。 加鎖機制劃分,有樂觀鎖和悲觀鎖。 按兼容性劃分,有共享鎖和排他鎖。 按鎖模式劃分,有記錄鎖,間隙鎖,next-key鎖,意向鎖…

/var/lib/docker/overlay2目錄過大怎么辦

/var/lib/docker/overlay2 是 Docker 默認用于存儲 容器鏡像和容器運行時數據 的核心目錄,基于 overlay2 存儲驅動實現。以下是其具體作用和內容的詳細解析: 1. overlay2 目錄的作用 存儲鏡像分層結構: Docker 鏡像采用分層設計,o…

JimuReport:一款免費的數據可視化報表工具

JimuReport(積木報表)是一款免費的企業級數據可視化報表軟件,提供拖拽的方式像搭建積木一樣完成在線設計,功能涵蓋數據報表、打印設計、圖表報表、門戶設計、大屏設計等。 數據源 JimuReport 支持 30 多種數據源,包括…

Neo4j.5.X社區版創建數據庫和切換數據庫

在使用Neo4j數據庫(版本:neo4j-community-5.22.0)時,系統自帶的“neo4j”和“system”數據庫適用于日常的簡單學習和練習,但對于新的項目,將項目數據與練習數據混用會帶來諸多不便,例如查詢效率…

DAY33神經網絡

浙大疏錦行 定義了一個簡單的神經網絡,主要是掌握pytorch框架

拼團系統多層限流架構詳解

拼團系統多層限流架構詳解 一、整體架構設計理念 多層限流采用"層層設防"思想,通過網關層全局流量控制→服務層接口粒度限流→本地資源隔離→熱點參數精準防護的四級防御體系,實現從粗到細的流量治理,確保大促期間系統穩定性。 …