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>

最新文章

  1. google tensorflow guide
  2. 【转】iOS夯实:ARC时代的内存管理
  3. 版本管理工具SVN
  4. php 类文件加载 Autoloader
  5. MAVEN整理(乘国庆还有时间,停下来整理一下)
  6. TCP协议中的三次握手和四次挥手
  7. C Primer Plus之存储类、链接和内存管理
  8. HTML5随笔
  9. 与众不同 windows phone (20) - Device(设备)之位置服务(GPS 定位), FM 收音机, 麦克风, 震动器
  10. 滚动条加粗和panel,gridControl结合用
  11. Mac QQ 怎么清除聊天记录
  12. sqlserver isnull函数
  13. oracle数据导入
  14. springcloud 服务调用的两种方式
  15. Making the Grade [POJ3666] [DP]
  16. 初识Scala
  17. hdu 6170 Two strings dp
  18. 微信UnionId 部分开放
  19. HDU 6045 17多校2 Is Derek lying?
  20. 使用crf++

热门文章

  1. 关于group by的用法 原理
  2. gradle中gredle -q 参数是什么意思
  3. React: React的复合组件
  4. Android Monkey的用法(一)
  5. 使用openpyxl模块进行封装,高效处理excel测试数据
  6. 为了“小命”,这款APP一定要下!火爆了!
  7. Linux - 几种方法来实现scp拷贝时无需输入密码
  8. pandas 学习 第6篇:DataFrame - 数据处理(长宽格式、透视表)
  9. WPF的DataGrid的某个列绑定数据的三种方法(Binding、Converter、DataTrigger)
  10. 诚聘.NET架构师、高级开发工程师(2019年8月29日发布)