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. nodejs+Express中使用mustache模板引擎

    由于公司一个seo项目,需要我协助.此项目他人已经开发大半,由于seo需要,使用了服务器端模板引擎.我项目的后端同事说项目是go语音写的,跑项目麻烦,只给了我template和css等静态文件. 为了 ...

  2. C语言解决汉诺塔问题!

    很难受,看了很多资料才明白..... 对这个问题分析,发现思路如下:有n个黄金盘,要先把n-1个弄到B柱上,再把第n个弄到C柱上,然后把n-1个借助A柱弄到C柱上. 实现的函数如下: void f(i ...

  3. CSP-S 2019文澜中学游记(11.15~11.17)

    前言 今年的\(CSP-S\),本以为自己的实力与去年的\(NOIP\)相比,能有较大的提升的. 没想到,菜是原罪,弱就是弱,依然逃脱不了被吊锤的命运. \(Nov\ 15th\):\(Day\ 0\ ...

  4. Codeforces Round #594 (Div. 1)

    Preface 这场CF真是细节多的爆炸,B,C,F都是大细节题,每道题都写了好久的说 CSP前的打的最后一场比赛了吧,瞬间凉意满满 希望CSP可以狗住冬令营啊(再狗不住真没了) A. Ivan th ...

  5. 第04组 Beta冲刺(3/5)

    队名:new game 组长博客 作业博客 组员情况 鲍子涵(队长) 过去两天完成了哪些任务 整理素材 接下来的计划 素材和脚本相连 引入声音素材 还剩下哪些任务 让游戏本体运行 遇到了哪些困难 时间 ...

  6. Linux目录结构-下部

    第1章 /etc目录 1.1 /etc/inittab 1.1.1 查看当前系统的运行级别 [root@nfsnobody ~]# runlevel N 3##查看系统当前运行级别 后面的数字表示当前 ...

  7. tensorflow slim代码使用

    此处纯粹作为个人学习使用,原文连接:https://www.jianshu.com/p/dc24e54aec81 这篇文章是借鉴很多博文的,作为一个关于slim库的总结 导入slim模块 import ...

  8. git 创建分支 提交到远程分支

    git 创建分支 并 提交到远程分支 git branch 0.可以通过git branch -r 命令查看远端库的分支情况 1,从已有的分支创建新的分支(如从master分支),创建一个dev分支 ...

  9. nginx-配置文件样例

    1, 总配置文件 user nobody nobody; worker_processes ; worker_rlimit_nofile ; error_log /etc/nginx-idfa/log ...

  10. Web前端——表单提交和Js添加选项

    表单 表单提交 表单提交之后会将表单的数据以get或post方式,传送到action要打开的页面 方式1: 使用提交按钮 <form action="" method=&qu ...