内容简介:首先利用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使用动画的新姿势,记录一下,希望对大家有帮助。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ajax修炼之道
(美)哥特兰、高伯瑞斯、艾米亚 / 徐锋,胡冰 / 电子工业出版社 / 2006-4 / 29.8
Ajax将静态Web页面转变为充满交互的应用。现在您不需要牺牲Web应用程序部署的简单性,就可以将“胖”客户端应用程序部署到客户端。不过对于很多人业说,Ajax看起来很难。这就是我们撰写本书的原因。作为实践的指导,本书揭开了Ajax神秘的面纱,教您如何以简单的方式使用Ajax。本书内容覆盖了DHTML、Javascript和闻名已久的XmlHttp Request回调技术的基础知识。您将了解如何将......一起来看看 《Ajax修炼之道》 这本书的介绍吧!