内容简介:首先利用CSSTransition进行单个元素的动画开发。今天解锁了react使用动画的新姿势,记录一下,希望对大家有帮助。
首先利用CSSTransition进行单个元素的动画开发。
//App.js
import { CSSTransition } from 'react-transition-group'
import React, { Component } from 'react';
import './style.css'
class App extends Component {
constructor(props) {
super(props);
this.state = {
isShow: true
}
this.toToggole = this.toToggole.bind(this)
}
render() {
return (
<div>
<CSSTransition
<!-- in表示是否出现 timeout表示动画延时 -->
in={this.state.isShow}
timeout={2000}
<!-- classNames是钩子名,为后面的class名前缀 -->
classNames="test"
<!-- unmountOnExit表示元素隐藏则相应的DOM被移除 -->
unmountOnExit
<!-- appear设为true表示进场动画,CSS中有对应类名 -->
appear={true}
<!--以下为动画钩子函数, 与CSS中相对应-->
onEnter={(el) => {}}
onEntering={(el) => {}}
onEntered={(el) => {}}
onExit={(el) => {}}
onExiting={(el) => {}}
onExited={(el) => {}}
>
<div>hello</div>
</CSSTransition>
<div><button onClick={this.toToggole}>点我</button></div>
</div>
);
}
toToggole() {
this.setState({
isShow: !this.state.isShow
})
}
}
export default App;
复制代码
//进场前的瞬间
.test-enter, .test-appear{
opacity: 0;
}
//进场过程中
.test-enter-active, .test-appear-active{
opacity: 1;
transition: opacity 2000ms;
}
//进场之后
.test-enter-done{
opacity: 1;
}
//离开前的瞬间
.test-exit{
opacity: 1;
}
//离开过程中
.test-exit-active{
opacity: 0;
transition: opacity 2000ms;
}
//离开后
.test-exit-done{
opacity: 0;
}
复制代码
三、对一组元素进行动画操作
//App.js
//CSS文件和style.css相同
import { CSSTransition, TransitionGroup } from 'react-transition-group'
import React, { Component } from 'react';
import './style.css'
class App extends Component {
constructor(props) {
super(props);
this.state = {
list: []
}
this.handleAddItem = this.handleAddItem.bind(this)
}
render() {
return (
<div>
<TransitionGroup>
{
this.state.list.map((item, index) => {
return (
<CSSTransition
timeout={2000}
classNames="test"
unmountOnExit
onEntered={(el) => {el.style.color='blue'}}
appear={true}
>
<div key={index}>{item}</div>
</CSSTransition>
)
})
}
</TransitionGroup>
<div><button onClick={this.handleAddItem}>点我</button></div>
</div>
);
}
handleAddItem() {
this.setState((prevState) => {
return {
list: [...prevState.list, 'item']
}
})
}
}
export default App;
复制代码
今天解锁了react使用动画的新姿势,记录一下,希望对大家有帮助。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
啊哈C!思考快你一步
啊哈磊 / 电子工业出版社 / 2013-9 / 39.00元
这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述编程的思维。同时,与计算机展开的逻辑较量一定会让你觉得很有意思。你可以在茶余饭后阅读本书,甚至蹲在马桶上时也可以看得津津有味。编程将会改变我们的思维,教会我们如何思考,让我们的思维插上计算机的翅膀,以......一起来看看 《啊哈C!思考快你一步》 这本书的介绍吧!