1. css原生动画的使用

import React, { useState } from "react"
import "./index.css" function App() {
const [show, setShow] = useState(true)
const toogle = () => {
setShow(!show)
}
return (
<div>
<div className={show ? "show" : "hide"}>hello,world</div>
<button className="btn" onClick={toogle}>
toogle
</button>
</div>
)
} export default App

样式

.show {
opacity:;
transition: all 1s;
} .hide {
opacity:;
transition: all 1s;
}

2.使用keyframes动画

.show {
animation: show-item 1s ease-in forwards; // forwards 表示保存动画最后一帧的状态
} .hide {
animation: hide-item 1s ease-in forwards;
} @keyframes show-item {
0% {
opacity:;
}
50% {
opacity: 0.5;
color: pink;
}
100% {
opacity:;
color: green;
}
}
@keyframes hide-item {
0% {
opacity:;
}
50% {
opacity: 0.5;
}
100% {
opacity:;
}
}

3.使用 react-transition-group实现动画

.fade-enter {
opacity:;
} .fade-enter-active { // 在最后一帧时会被清除
opacity:;
transition: all 1s ease-in;
}
.fade-enter-done { // 这是必须的 保证最后一帧动画的状态
opacity:;
} .fade-exit {
opacity:;
} .fade-exit-active {
opacity:;
transition: all 1s ease-in;
}
.fade-exit-done {
opacity:;
}
<CSSTransition in={show} classNames="fade" timeout={10000} unmountOnExit>  unmountOnExit 表示隐藏的时候卸载该组件
<div>hello,world</div>
</CSSTransition>

刷新页面没有动画  需要加上 appear={true}

Transition / CSSTransition / TransitionGroup

Transition 相比较于 CSSTransition更加底层

4.列表动画

<TransitionGroup>
{
this.state.list.map((item,index)=>{
return (<CSSTransition key={index}
appear = {true}
timeout = {1000}
unmountOnExit
classNames='fade'
onEntered={(el)=>{el.style.color='blue'}}>
<div>{item}</div>
</CSSTransition>);
})
}
</TransitionGroup>
<button onClick={ this.handlerClick }>toogle</button>

react中使用动画的更多相关文章

  1. react中如何使用动画效果

    在react中想要加入动画效果 需要引入 import {CSSTransitionGroup} from 'react-transition-group' //加入react 动画包 import ...

  2. Immutable 详解及 React 中实践

    本文转自:https://github.com/camsong/blog/issues/3 Shared mutable state is the root of all evil(共享的可变状态是万 ...

  3. React中使用CSSTransitionGroup插件实现轮播图

    动画效果,是一个页面上必不可少的功能,学习一个新的东西,当然就要学习,如何用新的东西,用它的方法去实现以前的东西啦.今天呢,我就在这里介绍一个试用react-addons-css-transition ...

  4. react中input自动聚焦问题

    input自动聚焦问题 在react中可以使用refs解决这个问题,首先看一下refs的使用场景: (1)处理焦点.文本选择或媒体控制. (2)触发强制动画. (3)集成第三方 DOM 库. 使用re ...

  5. 简谈react中的虚拟DOM

    相信你在看到此篇前也翻阅大量的对DOM的文章讲解和介绍 react中的虚拟DOM 此篇我尽量说人话(大白话),不然想必你在看到别的大神的文章早就懂了. 不说废话了,上干货. 1.首先简单对Html中的 ...

  6. 【React】377- 实现 React 中的状态自动保存

    点击上方"前端自习课"关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉 ...

  7. Three.js 快速上手以及在 React 中运用[转]

    https://juejin.im/post/5ca22692f265da30a53d6656 github 的地址 欢迎 star! 之前项目中用到了 3D 模型演示的问题,整理了一下之前学习总结以 ...

  8. React中的合成事件

    React中的合成事件 React自己实现了一套高效的事件注册.存储.分发和重用逻辑,在DOM事件体系基础上做了很大改进,减少了内存消耗,简化了事件逻辑,并最大程度地解决了IE等浏览器的不兼容问题. ...

  9. React Transition css动画案例解析

    实现React Transition Css动画效果 首先在项目工程中引入react-transition-group: npm install react-transition-group --sa ...

随机推荐

  1. Best Cow Line <挑战程序设计竞赛> 习题 poj 3617

    P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Goldpoj 3617 http://poj.org/problem?id=3617 题目描述FJ is about ...

  2. <Math> 29 365

    29. Divide Two Integers class Solution { public int divide(int dividend, int divisor) { if(dividend ...

  3. Codeforces Round #598 (Div. 3) D. Binary String Minimizing 贪心

    D. Binary String Minimizing You are given a binary string of length n (i. e. a string consisting of ...

  4. Java连载39-构造方法详解

    ​一. 1.多行注释:CTRL + shift + / 2.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器. public class D39 ...

  5. php 截取字符串 strstr 和strrchr

    截取字符串 strstr 和strrchr 结果:(其中之一) strstr : 执行时间在0.10 - 0.19 之间 strrchr : 执行时间在0.095 - 0.19 之间 结论:从数十次执 ...

  6. 【STM32H7教程】第30章 STM32H7的USART应用之八个串口FIFO实现

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第30章       STM32H7的USART应用之八个串口 ...

  7. 【Oracle命令】sql语句之排序(order by)

    通过对数据库数据进行降序排序来达到显示最新数据在前面的效果 -- 降序排序(最新的显示在前面) SELECT * FROM 表名 t ORDER BY t.uploadDatetime DESC; 格 ...

  8. Oracle define用法简介教程

    目录 1.define常量用法 2.&和&&符号用法 继上一篇博客Oracle绑定变量学习笔记,再写一篇define变量的简单教程 @ 1.define常量用法 注意:defi ...

  9. 10-Django中间件

    中间件 Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入和输出. 中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Djang ...

  10. 09-Django静态文件

    1.静态文件 项目中的图片.CSS.js都是静态文件,一般会将静态文件放到一个单独的目录下,也方便管理.一般会将静态文件放到一个单独的目录下,也可以放在应用的目录下,由于静态文件是全部应用都在使用的, ...